Android Storage 路径测试

来源:互联网 发布:长沙理工大学教务网络 编辑:程序博客网 时间:2024/06/06 08:57

以下内容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

0 0
原创粉丝点击