获取的目录是/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)