我是靠谱客的博主 奋斗黑猫,这篇文章主要介绍Android App相关的读写路径,现在分享给大家,希望可以做个参考。

没有权限的时候,可以看一下External是否可读

复制代码
1
2
3
4
5
6
Log.d(TAG, " ExternalStorageWritable: " + isExternalStorageWriteable()); Log.d(TAG, " ExternalStorageEReadable: " + isExternalStorageReadable()); result: ExternalStorageWritable: true ExternalStorageEReadable: true

SD 卡公共目录,这些目录仍然可以访问,不受权限限制

复制代码
1
2
3
4
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权限。

复制代码
1
2
3
4
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
复制代码
1
2
3
4
5
6
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,应用程序可以随意读写

复制代码
1
2
3
4
5
6
7
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的文件夹

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部