Android Storage 路径测试

以下内容Android 4.4及以后适用。

每个App有自己的Internal storage。
路径为/data/data/com.example.fredwang.fredtest/
com.example.fredwang.fredtest 为App的package。
使用此路径不需要任何权限。
该目录下有三个子目录:

以下代码可以直接在Internal Storage中写入文件。

String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

以上代码直接将字符写入到hello_file文件中,文件保存在
/data/data/<>/files/
获得文件路径的API如下

String cacheDir = this.getCacheDir().toString();
String fileDir = this.getFilesDir().toString();
Log.d(TAG, " cacheDir: " + cacheDir + "\n fileDir: " + fileDir);

cacheDir: /data/user/0/com.example.fredwang.fredtest/cache
fileDir: /data/user/0/com.example.fredwang.fredtest/files

/data/user/0/com.example.fredwang.fredtest/ 这个目录等同于
/data/data/com.example.fredwang.fredtest/


除了Internal Storage之外,External Storage大多数情况都需要权限。

保存在公共的其他App也可以访问的目录下:

String publicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
Log.d(TAG, " publicDir: " + publicDir);

publicDir: /storage/emulated/0/Pictures

保存在其他App不可以访问的私有目录之下,需要注意的是,此目录不需要权限。

String externalFileDir = this.getExternalFilesDir(null).toString();
String exterCacheDir = this.getExternalCacheDir().toString();
Log.d(TAG, " externalFileDir: " + externalFileDir + "\n exterCacheDir: " + exterCacheDir);

externalFileDir: /storage/emulated/0/Android/data/com.example.fredwang.fredtest/files
exterCacheDir: /storage/emulated/0/Android/data/com.example.fredwang.fredtest/cache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值