Android文件路径

Android常见文件夹

外部存储、内部存储

Internal storage:
  • 总是可用的,文件默认被当前app访问(非root)。
  • 当用户卸载app的时候,系统会把internal内该app相关的文件都清除干净。
  • 存储隐私信息,比如账号信息(非root)
External storage:
  • 6.0以上需要获取Storage权限。
  • 并不总是可用的,因为用户有时会通过USB存储模式挂载外部存储器,当取下挂载的这部分 后,就无法对其进行访问了。
  • 保存在这里的文件可以被其他程序访问。
  • 保存用户卸载app后不需要删除或者下次安装可以继续访问的文件

常见的获取文件路径方法,对应的绝对路径

  • Internal storage

    1. getCacheDir().getAbsolutePath():     
    /data/data/packagename/cache
    2. getFilesDir().getAbsolutePath():  
    /data/data/packagename/files
    
  • External storage

    1. getExternalCacheDir().getAbsolutePath():
       /storage/emulated/0/Android/data/packagename/cache
    
    2. Environment.getExternalStorageDirectory().getAbsolutePath():
       /storage/emulated/0
    
    3.     Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()):
       /storage/emulated/0/DCIM
    
    4. getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath:
       /storage/emulated/0/Android/data/packagename/files/Pictures
    

Java获取相对路径

String path = "/var/data/x/xyz.txt";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new  
File(path).toURI()).getPath();// relative == "x/xyz.dat"
0%