今天没事写了个Demo打印了下Android文件目录的资料,以备后用。demo设备:Android P
打印日志如下:
cacheDir==/data/user/0/com.julian.androidfiledemo/cache
dataDir==/data/user/0/com.julian.androidfiledemo
filesDir==/data/user/0/com.julian.androidfiledemo/files
obbDir==/storage/emulated/0/Android/obb/com.julian.androidfiledemo
codeCacheDir==/data/user/0/com.julian.androidfiledemo/code_cache
externalCacheDir==/storage/emulated/0/Android/data/com.julian.androidfiledemo/cache
externalCacheDirs==[/storage/emulated/0/Android/data/com.julian.androidfiledemo/cache,
/storage/3F5D-1700/Android/data/com.julian.androidfiledemo/cache]
externalFilesDir==/storage/emulated/0/Android/data/com.julian.androidfiledemo/files/Pictures
dataDirectory==/data
downloadCacheDirectory==/data/cache
externalStorageState==mounted
rootDirectory==/system
externalStorageDirectory==/storage/emulated/0
externalStoragePublicDirectory==/storage/emulated/0/Music
可以看到,context获取的目录一般为当前应用程序下的目录,Environment获取的目录一般是公共目录。
另外,getExternalCacheDirs()可以获取到SD卡的目录,而且亲测可以直接写入文件,在Android p上不用弹出上面的对话框申请sd卡操作权限。
canonicalFile==/data/data/com.julian.androidfiledemo/files
canonicalPath==/data/data/com.julian.androidfiledemo/files
freeSpace==1794158592
usableSpace==1583755264
totalSpace==9462403072
absoluteFile==/data/user/0/com.julian.androidfiledemo/files
absolutePath==/data/user/0/com.julian.androidfiledemo/files
name==files
path==/data/user/0/com.julian.androidfiledemo/files
myFile==/data/user/0/com.julian.androidfiledemo/files/book.txt
canonicalFile==/data/data/com.julian.androidfiledemo/files/book.txt
canonicalPath==/data/data/com.julian.androidfiledemo/files/book.txt
filesDir==/data/user/0/com.julian.androidfiledemo/files
myfile==/data/user/0/com.julian.androidfiledemo/files/book.txt
absoluteFile==/data/user/0/com.julian.androidfiledemo/files/book.txt
absolutePath==/data/user/0/com.julian.androidfiledemo/files/book.txt
name==book.txt
path==/data/user/0/com.julian.androidfiledemo/files/book.txt