概述
没有权限的时候,可以看一下External是否可读
Log.d(TAG, " ExternalStorageWritable: " + isExternalStorageWriteable());
Log.d(TAG, " ExternalStorageEReadable: " + isExternalStorageReadable());
result:
ExternalStorageWritable: true
ExternalStorageEReadable: true
SD 卡公共目录,这些目录仍然可以访问,不受权限限制
String publicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
Log.d(TAG, " publicDir: " + publicDir);
result:
publicDir: /storage/emulated/0/Pictures
程序相关的 SD 卡外部存储目录,这个目录位于 SD 卡,Android 4.4(API 19)之后, 应用程序可以随意读写。
注:Android 4.4(API 19)之后,读取getExternalFilesDir()的路径就不需要申请WRITE_EXTERNAL_STORAGE权限了。通过getExternalFilesDir()获得的路径是在external storage上每一个APP自己的目录。
但是需要注意的是,如果你的API <= 18 还是需要添加WRITE_EXTERNAL_STORAGE权限。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
String externalFileDir = this.getExternalFilesDir(null).toString();
String exterCacheDir = this.getExternalCacheDir().toString();
Log.d(TAG, " externalFileDir: " + externalFileDir + "n exterCacheDir: " + exterCacheDir);
result:
externalFileDir: /storage/emulated/0/Android/data/com.example.fredwang.fredtest/files
exterCacheDir: /storage/emulated/0/Android/data/com.example.fredwang.fredtest/cache
程序相关的 内置存储目录,这个目录位于内置 flash,应用程序可以随意读写
String cacheDir = this.getCacheDir().toString();
String fileDir = this.getFilesDir().toString();
Log.d(TAG, " cacheDir: " + cacheDir + "n fileDir: " + fileDir);
result:
cacheDir: /data/data/com.example.fredwang.fredtest/cache
fileDir: /data/data/com.example.fredwang.fredtest/files
通过openFileOutput 将文件存放在internal的文件夹
public boolean saveFile() {
String FILENAME = "FRED_FISH.txt";
String string = "hello_world";
FileOutputStream fos = null;
try {
fos = openFileOutput(FILENAME, MODE_PRIVATE);
fos.write(string.getBytes());
Log.d(TAG, " return true; ");
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
Log.d(TAG, " fos.close; ");
fos.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
return false;
}
result:
/data/data/com.example.fredwang.fredtest/files # ls
FRED_FISH.txt
最后
以上就是奋斗黑猫为你收集整理的Android App相关的读写路径的全部内容,希望文章能够帮你解决Android App相关的读写路径所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复