【问题标题】:setReadOnly not workingsetReadOnly 不起作用
【发布时间】: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


【解决方案1】:

你应该在AndroidManifest.xml中定义权限android.permission.MOUNT_UNMOUNT_FILESYSTEMS,这意味着你可以在SDCard上创建文件和删除文件。

【讨论】:

  • 不,这不是 android.permission.MOUNT_UNMOUNT_FILESYSTEMS 所做的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
相关资源
最近更新 更多