Android 获取应用中目录的几种方式

432 阅读1分钟

获取的目录是/data/data/package_name,即应用内部存储的根目录

context.getDataDir();

获取的目录是/data/data/package_name/files,即应用内部存储的files目录

context.getFilesDir();

获取的目录是/data/data/package_name/cache,即应用内部存储的cache目录

context.getCacheDir();

获取的目录是/data/data/package_name/name,如果该目录不存在,系统会自动创建该目录。

context.getDir(String name, int mode) 

不同的mode

MODE_APPEND:即向文件尾写入数据 MODE_PRIVATE:即仅打开文件可写入数据 MODE_WORLD_READABLE:所有程序均可读该文件数据,Api 17废弃 MODE_WORLD_WRITABLE:即所有程序均可写入数据,Api 17废弃

外部存储目录

获取到的目录是 /storage/emulated/0/Android/data/package_name/cache

Context.getExternalCacheDir() 

如果type为"",那么获取到的目录是 /storage/emulated/0/Android/data/package_name/files, 如果type为"test",那么就会创建/storage/emulated/0/Android/data/package_name/files/test目录

Context.getExternalFilesDir(String type) 

获取到的目录是/storage/emulated/0,这个也是外部存储的根目录。

Environment.getExternalStorageDirectory() 

1.如果type为"",那么获取到的目录是外部存储的根目录即 /storage/emulated/0

2.如果type为"test",那么就在外部存储根目录下创建test目录,android官方推荐使用以下的type类型,我们在Sdcar的根目录下也经常可以看到下面的某些目录:

public static String DIRECTORY_MUSIC = "Music"; 
public static String DIRECTORY_PODCASTS = "Podcasts";
public static String DIRECTORY_RINGTONES = "Ringtones";
public static String DIRECTORY_ALARMS = "Alarms";
public static String DIRECTORY_NOTIFICATIONS = "Notifications";
public static String DIRECTORY_PICTURES = "Pictures";
public static String DIRECTORY_MOVIES = "Movies";
public static String DIRECTORY_DOWNLOADS = "Download";
public static String DIRECTORY_DCIM = "DCIM";
public static String DIRECTORY_DOCUMENTS = "Documents";

Environment.getExternalStoragePublicDirectory(String type)