【发布时间】:2011-08-23 11:18:34
【问题描述】:
我正在使用setReadOnly 方法使我的应用程序目录存储在我的 SD 卡上“只读”。然而,即使我在清单中为应用程序提供了android.permission.WRITE_EXTERNAL_STORAGE 权限,调用此方法时也会返回“false”。
这是我的代码:
is.close();
fos.close();
Decompress d = new Decompress(productDirectory + "/downloadedfile.zip", productDirectory + "/unzipped/");
d.unzip();
File zipfile = new File(productDirectory + "/downloadedfile.zip");
zipfile.delete();
productDirectory = new File(Environment.getExternalStorageDirectory().toString() + "/zipfiledemo");
boolean isWriteLocked = productDirectory.setReadOnly();
Log.v("Writing access locked",">>>>>>>>>>>>>>>>>>>" + isWriteLocked);
【问题讨论】:
-
外部存储的 FAT 类型文件系统可能不支持此功能。即使您确实设法将目录设置为只读,任何其他应用程序都可以撤消该操作,因为 sdcard 上没有文件/目录所有权的概念,就像托管应用程序私有存储目录的 unix 类型文件系统一样。
-
从 Android 4.4 开始,应用程序似乎无法更改 SD 卡上的文件权限,即使使用
WRITE_EXTERNAL_STORAGE。但setReadOnly()适用于应用程序数据文件夹 (/data/data/[package name]/) 中的文件
标签: android file sd-card readonly