Android获取文件目录

在Android开发过程中,难免会遇到需要文件操作,这些文件可以存放在data分区下面,也可以存放在外置sd,这些路径都是什么呢,今天在这里做一个简单的总结。

我一共用了8个系统API,代码如下:

tv.setText("getExternalCacheDir().getAbsolutePath():"+getExternalCacheDir().getAbsolutePath()+"\n"
+"getDataDir().getAbsolutePath():"+getDataDir().getAbsolutePath()+"\n"
+"getFilesDir().getAbsolutePath():"+getFilesDir().getAbsolutePath()+"\n"
+"getCacheDir().getAbsolutePath()"+getCacheDir().getAbsolutePath()+"\n"
+"Environment.getDataDirectory():"+Environment.getDataDirectory().getAbsolutePath()+"\n"
+"Environment.getDownloadCacheDirectory():"+Environment.getDownloadCacheDirectory().getAbsolutePath()+"\n"
+"Environment.getExternalStorageDirectory()"+Environment.getExternalStorageDirectory().getAbsolutePath()+"\n"
+"Environment.getRootDirectory()"+Environment.getRootDirectory().getAbsolutePath()+"\n");
运行结果如下:


附加问题:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/data/data/目录下?

解答:

SD卡上也有一个文件夹 /Android/data/包名,这个文件夹也是用来给程序放应用数据的,此文件夹读写在4.4及以后不需要外置储存区读写权限。这两个文件夹区别在于 data 分区有权限控制,除非应用自己同意,否则其他应用无法读取内部的数据,而sdcard/Android下的文件只要有外置空间读取权限就可以读取。所以data下一般放私密信息,而sdcard/Android 下放可以公开的缓存数据。

猜你喜欢

转载自blog.csdn.net/baidu_27196493/article/details/79128052
今日推荐