Android 相关文件路径获取及说明

一、内存的分类

一般情况下,手机的内存分类有如下4类,分别是:

  1. 内部存储路径
  2. 内部缓存存储路径
  3. 外部存储路径
  4. 外部缓存存储路径

在部分手机上,某些手机制造商在定制rom的时候,会在内部划出一个内部的SDCard路径和内部存储路径,当插有SDCard的时候,就会多两个文件路径了。

二、文件路径的获取或说明

1. 通过Environment获取的

//  获得根目录/data (内部存储路径)
Environment.getDataDirectory().getPath();
// 获得缓存目录/cache                                 
Environment.getDownloadCacheDirectory().getPath() ;
// 获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径)   
Environment.getExternalStorageDirectory().getPath() ;
// 获得SD卡目录/mnt/sdcard/type(获取的是手机外置sd卡的指定文件的路径)   
Environment.getExternalStoragePublicDirectory(type);
Envinonment 类提供诸多 type 参数的常量,比如:
DIRECTORY_MUSIC:Music
DIRECTORY_MOVIES:Movies
DIRECTORY_PICTURES:Pictures
DIRECTORY_DOWNLOADS:Download
//获得系统目录/system                
Environment.getRootDirectory().getPath(); 

Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
Environment.getRootDirectory() = /system                              

2. 通过Context获取的

Context.getDatabasePath()                                                     
返回通过Context.openOrCreateDatabase 创建的数据库文件
Context.getCacheDir().getPath() :                                          
用于获取APP的cache目录 /data/data//cache目录
Context.getExternalCacheDir().getPath()  : 
用于获取APP的在SD卡中的cache目录/mnt/sdcard/Android/data//cache
Context.getFilesDir().getPath()  : 
用于获取APP的files目录 /data/data//files
Context.getObbDir().getPath(): 
用于获取APP SDK中的obb目录 /mnt/sdcard/Android/obb/
Context.getPackageName() : 
用于获取APP的所在包目录
Context.getPackageCodePath()  : 
来获得当前应用程序对应的 apk 文件的路径
Context.getPackageResourcePath() :
 获取该程序的安装包路径

getPackageCodePath() = /data/app/com.my.app-1.apk
getPackageResourcePath() = /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files

相关推荐:
https://blog.csdn.net/iromkoear/article/details/71279663

你可能感兴趣的:(Android 相关文件路径获取及说明)