Android 创建文件的工具类

public class FileUtils {

private static final StringDB_DIR ="db";

private static final StringTEMP_DIR ="temp";

private static final StringDOWNLOAD_DIR ="download";

private static final StringUPLOAD_DIR ="upload";

private static final StringIMAGE ="image";

private static final StringRECORD ="record";

private static final StringVIDEO ="video";

private static final StringAVATAR ="avatar";

/**

    * 默认APP根目录.

*/

    private static StringrootFileDir =null;

/**

    * 默认数据库文件目录.

*/

    private static StringdbFileDir =null;

/**

    * 默认临时文件目录.

*/

    private static StringtempFileDir =null;

/**

    * 默认下载文件目录.

*/

    private static StringdownLoadFileDir =null;

/**

    * 默认上传文件目录.

*/

    private static StringupLoadFileDir =null;

private static StringimageFileDir =null;

/**

    * 语音存放的路径

    */

    private static StringrecordFileDir =null;

private static StringvideoFileDir =null;

private static StringavatarFileDir =null;

private static StringrecorderFileDir =null;

/**

    * 初始化基本文件以及当前用户文件

    *

    * @param context

    */

    public static void initFileDir(Context context) {

String packageName = context.getPackageName();

// 默认文件存储根目录.

        String rootPath = File.separator + packageName + File.separator;

// 默认DB目录.

        String dbPath = File.separator +DB_DIR + File.separator;

// 默认临时文件目录

        String tempPath = File.separator +TEMP_DIR + File.separator;

// 默认下载文件目录

        String downloadPath = File.separator +DOWNLOAD_DIR + File.separator;

// 默认上传文件目录

        String uploadPath = File.separator +UPLOAD_DIR + File.separator;

// 默认聊天图片

        String imagePath = File.separator +IMAGE + File.separator;

//默认语音的路径

        String recordPath = File.separator +RECORD + File.separator;

//默认视频的路径

        String videoPath = File.separator +VIDEO + File.separator;

//头像路径

        String avatarPath = File.separator +AVATAR + File.separator;

try {

if (!isCanUseSD()) {

return;

}else {

//在根目录Android下

              /* File root = Environment.getExternalStorageDirectory();

File androidRoot = new File(root.getAbsolutePath() + File.separator + "Android");

if (!androidRoot.exists()) {

androidRoot.mkdirs();

}*/

                //在根目录的包名下

                File root = Environment.getExternalStorageDirectory();

File androidRoot =new File(root.getAbsolutePath() + File.separator + packageName);

if (!androidRoot.exists()) {

androidRoot.mkdirs();

}

File dataRoot =new File(androidRoot.getAbsolutePath() + File.separator +"data");

if (!dataRoot.exists()) {

dataRoot.mkdirs();

}

File rootDirFile =new File(dataRoot.getAbsolutePath() + rootPath);

if (!rootDirFile.exists()) {

rootDirFile.mkdirs();

}

File filesRoot =new File(rootDirFile.getAbsolutePath() + File.separator +"files");

if (!filesRoot.exists()) {

filesRoot.mkdirs();

}

rootFileDir = filesRoot.getPath();

File dbDirFile =new File(filesRoot.getAbsolutePath() + dbPath);

if (!dbDirFile.exists()) {

dbDirFile.mkdirs();

}

dbFileDir = dbDirFile.getPath();

File tempDirFile =new File(filesRoot.getAbsolutePath() + tempPath);

if (!tempDirFile.exists()) {

tempDirFile.mkdirs();

}

tempFileDir = tempDirFile.getPath();

File downloadDirFile =new File(filesRoot.getAbsolutePath() + downloadPath);

if (!downloadDirFile.exists()) {

downloadDirFile.mkdirs();

}

downLoadFileDir = downloadDirFile.getPath();

File uploadDirFile =new File(filesRoot.getAbsolutePath() + uploadPath);

if (!uploadDirFile.exists()) {

uploadDirFile.mkdirs();

}

upLoadFileDir = uploadDirFile.getPath();

File imageDirFile =new File(filesRoot.getAbsolutePath() + imagePath);

if (!imageDirFile.exists()) {

imageDirFile.mkdir();

}

imageFileDir = imageDirFile.getPath();

File recordDirFile =new File(filesRoot.getAbsolutePath() + recordPath);

if (!recordDirFile.exists()) {

recordDirFile.mkdir();

}

recordFileDir = recordDirFile.getPath();

File videoDirFile =new File(filesRoot.getAbsolutePath() + videoPath);

if (!videoDirFile.exists()) {

videoDirFile.mkdir();

}

videoFileDir = videoDirFile.getPath();

File avatarDirFile =new File(filesRoot.getAbsolutePath() + avatarPath);

if (!avatarDirFile.exists()) {

avatarDirFile.mkdir();

}

avatarFileDir = avatarDirFile.getPath();

}

}catch (Exception e) {

e.printStackTrace();

}

}

/**

    * 描述:SD卡是否能用.

*

    * @return true 可用,false不可用

    */

    public static boolean isCanUseSD() {

try {

return Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED);

}catch (Exception e) {

e.printStackTrace();

}

return false;

}

/**

    * 获取默认APP根目录路径

    *

    * @param context

    * @return

    */

    public static String getRootFileDir(Context context) {

if (rootFileDir ==null) {

initFileDir(context);

}

return rootFileDir;

}

/**

    * 录音者签名

    */

    public static String getRecorder(Context context) {

if (recorderFileDir ==null) {

initFileDir(context);

}

return recorderFileDir;

}

/**

    * 获取数据库文件路径

    *

    * @param context

    * @return

    */

    public static String getDbFileDir(Context context) {

if (dbFileDir ==null) {

initFileDir(context);

}

return dbFileDir;

}

/**

    * 获取临时文件路径

    *

    * @param context

    * @return

    */

    public static String getTempFileDir(Context context) {

if (tempFileDir ==null) {

initFileDir(context);

}

return tempFileDir;

}

/**

    * 获取下载文件路径

    *

    * @param context

    * @return

    */

    public static String getDownloadFileDir(Context context) {

if (downLoadFileDir ==null) {

initFileDir(context);

}

return downLoadFileDir;

}

/**

    * 获取下载文件路径

    *

    * @param context

    * @return

    */

    public static String getUploadFileDir(Context context) {

if (upLoadFileDir ==null) {

initFileDir(context);

}

return upLoadFileDir;

}

public static String getImageFileDir(Context context) {

if (imageFileDir ==null) {

initFileDir(context);

}

return imageFileDir;

}

public static String getRecordFileDir(Context context) {

if (recordFileDir ==null) {

initFileDir(context);

}

return recordFileDir;

}

public static String getVideoFileDir(Context context) {

if (videoFileDir ==null) {

initFileDir(context);

}

return videoFileDir;

}

public static String getAvatarFileDir(Context context) {

if (avatarFileDir ==null) {

initFileDir(context);

}

return avatarFileDir;

}

public static String getExtension(File file) {

if (file.isDirectory())

return null;

String fileName = file.getName();

String extensionName =null;

int dot = fileName.lastIndexOf('.');

if ((dot > -1) && (dot < (fileName.length() -1))) {

extensionName = fileName.substring(dot +1);

}

return extensionName;

}

/**

    * 获取文件名,不带后缀

    */

    public static String getFileNameNoEx(File file) {

if (file ==null)

return null;

String filename = file.getName();

if (file.isDirectory()) {

return filename;

}

if ((filename !=null) && (filename.length() >0)) {

int dot = filename.lastIndexOf('.');

if ((dot > -1) && (dot < (filename.length()))) {

return filename.substring(0, dot);

}

}

return filename;

}

/**

    * 创建文件

    *

    * @param strPath    路径

    * @param strFileName 文件名

    * @return true 成功, false 失败

    */

//

    public static boolean createFile(String strPath, String strFileName) {

File createdFile =new File(strPath +"/" + strFileName);

if (!createdFile.exists()) {

try {

return createdFile.createNewFile();

}catch (IOException e) {

Log.i("Exception", e.getMessage());

return false;

}

}

return false;

}

public static void makeDir(File dir) {

if (!dir.getParentFile().exists()) {

makeDir(dir.getParentFile());

}

dir.mkdir();

}

public static boolean createDirectory(String directory) {

File dir =new File(directory);

if (!dir.exists()) {

return dir.mkdirs();

}

return false;

}

public static boolean deleteDirectory(String directory) {

File dir =new File(directory);

if (dir.isDirectory()) {

File[] files = dir.listFiles();

for (File file : files) {

deleteDirectory(file.getAbsolutePath());

}

}else {

return dir.delete();

}

return true;

}

public static boolean directoryExist(String directory) {

File dir =new File(directory);

return dir.exists();

}

/**

    * 递归删除目录下的所有文件及子目录下所有文件

    *

    * @param dir 将要删除的文件目录

    * @return boolean Returns "true" if all deletions were successful.

* If a deletion fails, the method stops attempting to

* delete and returns "false".

*/

    public static boolean deleteDir(File dir) {

if (dir.isDirectory()) {

String[] children = dir.list();

//递归删除目录中的子目录下

            for (int i =0; i < children.length; i++) {

boolean success =deleteDir(new File(dir, children[i]));

if (!success) {

return false;

}

}

}

// 目录此时为空,可以删除

        return true;

}

/**

    * 删除指定目录的文件

    *

    * @param path 指定目录

    */

    public static void deleteFile(String path) {

File file =new File(path);

if (file.exists()) {

file.delete();

}

}

/**

    * 根据路径创建文件

    *

    * @param path 路径

    * @return 文件

    */

    public static File newFile(String path) {

try {

File file =new File(path);

if (!file.exists()) {

file.createNewFile();

}

return file;

}catch (IOException e) {

e.printStackTrace();

return null;

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容