android访问存储目录,Android存储访问及目录 · zhanglz1’s blog

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

Android的外部存储一般指SD卡,内存也可以指定一部分模拟为外存。

4.4以后,读写sd卡需要WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE权限。但是应用包名内的目录(/storage/emulated/0/Android/data/com.example.test/)不需要此权限。

敏感数据(如配置及log等)最好不要存在外部存储上。

getDataDirectory():数据目录。

getRootDirectory():系统目录

getDownloadCacheDirectory():下载缓存内容目录。

getExternalStorageDirectory():主要的外部存储目录。

getExternalStorageState():外部存储是否可以被访问。

getExternalStoragePublicDirectory(String):sd卡的一级子目录,如Pictures,Videos。可以放一些共享文件。需要读写权限。使用前需确认String的值存在该路径,没有要file.makedirs。

isExternalStorageEmulated()设备的外存是否是用内存模拟的,是则返回true。

isExternalStorageRemovable()设备的外存是否是可以拆卸的,比如SD卡,是则返回true。

Context.getExternalFilesDir(String):应用在sd卡上的私有目录的子目录/files/String,应用卸载时即被清理。

Context.getExternalCacheDir():应用在sd卡上的私有目录的子目录/cache,应用卸载时即被清理。

Context.getFilesDir() :内存中应用的私有目录的子目录files,应用卸载时即被清理。

Context.getCacheDir() :内存中应用的私有目录的子目录cache,应用卸载时即被清理。

在zui上的测试代码:public static void getEnvironmentDirectories() {

Log.i(LOG_TAG, "getExternalStorageState(): " + Environment.getExternalStorageState().toString());

Log.i(LOG_TAG, "getDownloadCacheDirectory(): " + Environment.getDownloadCacheDirectory().getPath().toString());

Log.i(LOG_TAG, "getDataDirectory(): " + Environment.getDataDirectory().getPath().toString());

Log.i(LOG_TAG, "getExternalStorageDirectory(): " + Environment.getExternalStorageDirectory().getPath().toString());

Log.i(LOG_TAG, "getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES): "

+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath().toString());

Log.i(LOG_TAG, "getRootDirectory(): " + Environment.getRootDirectory().getPath().toString());

Log.i(LOG_TAG, "getExternalStorageState().getAbsolutePath(): " + Environment.getExternalStorageState().toString());

Log.i(LOG_TAG, "getDownloadCacheDirectory().getAbsolutePath(): " + Environment.getDownloadCacheDirectory().getAbsolutePath().toString());

Log.i(LOG_TAG, "getDataDirectory().getAbsolutePath(): " + Environment.getDataDirectory().getAbsolutePath().toString());

Log.i(LOG_TAG, "getExternalStorageDirectory().getAbsolutePath(): " + Environment.getExternalStorageDirectory().getAbsolutePath().toString());

Log.i(LOG_TAG, "getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath(): "

+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath().toString());

Log.i(LOG_TAG, "getRootDirectory().getAbsolutePath(): " + Environment.getRootDirectory().getAbsolutePath().toString());

Log.i(LOG_TAG, "isExternalStorageEmulated(): " + Environment.isExternalStorageEmulated());

Log.i(LOG_TAG, "isExternalStorageRemovable(): " + Environment.isExternalStorageRemovable());

}

public static void getApplicationDirectories(Context context) {

Log.i(LOG_TAG, "context.getFilesDir(): " + context.getFilesDir().toString());

Log.i(LOG_TAG, "context.getCacheDir(): " + context.getCacheDir().toString());

// methods below will return null if the permissions denied

Log.i(LOG_TAG, "context.getExternalFilesDir(Environment.DIRECTORY_MOVIES): "

+ context.getExternalFilesDir(Environment.DIRECTORY_MOVIES));

Log.i(LOG_TAG, "context.getExternalCacheDir(): " + context.getExternalCacheDir());

}

输出结果:

03-21 10:33:26.433 14799 14799 I test : getExternalStorageState(): mounted

03-21 10:33:26.434 14799 14799 I test : getDownloadCacheDirectory(): /cache

03-21 10:33:26.434 14799 14799 I test : getDataDirectory(): /data

03-21 10:33:26.438 14799 14799 I test : getExternalStorageDirectory(): /

storage/emulated/0

03-21 10:33:26.444 14799 14799 I test : getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES): /storage/emulated/0/Pictures

03-21 10:33:26.444 14799 14799 I test : getRootDirectory(): /system

03-21 10:33:26.467 14799 14799 I test : getExternalStorageState().getAbsolutePath(): mounted

03-21 10:33:26.467 14799 14799 I test : getDownloadCacheDirectory().getAbsolutePath(): /cache

03-21 10:33:26.467 14799 14799 I test : getDataDirectory().getAbsolutePath(): /data

03-21 10:33:26.468 14799 14799 I test : getExternalStorageDirectory().getAbsolutePath(): /storage/emulated/0

03-21 10:33:26.472 14799 14799 I test : getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath(): /storage/emulated/0/Pictures

03-21 10:33:26.472 14799 14799 I test : getRootDirectory().getAbsolutePath(): /system

03-21 10:33:26.479 14799 14799 I test : isExternalStorageEmulated(): true

03-21 10:33:26.491 14799 14799 I test : isExternalStorageRemovable(): false

03-21 10:33:26.492 14799 14799 I test : context.getFilesDir(): /data/user/0/com.example.test/files

03-21 10:33:26.492 14799 14799 I test : context.getCacheDir(): /data/user/0/com.example.test/cache

03-21 10:33:26.499 14799 14799 I test : context.getExternalFilesDir(Environment.DIRECTORY_MOVIES): /storage/emulated/0/Android/data/com.example.test/files/Movies

03-21 10:33:26.501 14799 14799 I test : context.getExternalCacheDir(): /storage/emulated/0/Android/data/com.example.test/cache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值