初学Java编程---模糊不清1

2017-10-26  本文已影响0人  璀璨黄铜

关于文件的一些问题

1、File.mkdir()和File.mkdirs()的差别

"File.mkdirs()方法创建目录,该方法允许一次性创建多级目录,例如new File(“c:\\1\\2”).mkdirs();同时创建目录1和目录2.如果目录1存在将不被重新创建。File.mkdir()与mkdirs()不同在于mkdir()只能创建一级目录。而mkdirs()在需要时会自动创建上级目录。"

2、file.exists()   文件目录是否存在

3、内部外部对比如下↓

external storage    外部存储                 

Environment.getExternalStorageDirectory()               SD根目录:/mnt/sdcard/ (6.0后写入需要用户授权)

context.getExternalFilesDir(dir)           路径为:/mnt/sdcard/Android/data/< package name >/files/…

context.getExternalCacheDir()             路径为:/mnt/sdcard//Android/data/< package name >/cach/…

internal storage    内部存储                  

context.getFilesDir()                             路径是:/data/data/< package name >/files/…

context.getCacheDir()                          路径是:/data/data/< package name >/cach/…

4、正常开发获取存储文件路径的方法

/**

* @param context 上下文对象

* @param dir  存储目录

*/

public static String getFilePath(Context context,String dir) {

          String directoryPath="";

           //判断SD卡是否可用

          if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) ) {

                directoryPath =context.getExternalFilesDir(dir).getAbsolutePath() ;

          }else{

                //没内存卡就存机身内存

               directoryPath=context.getFilesDir()+File.separator+dir;

         }

         File file = new File(directoryPath);

         if(!file.exists()){                             //判断文件目录是否存在

              file.mkdirs();

       }

       return directoryPath;

}

上一篇下一篇

猜你喜欢

热点阅读