3

我正在尝试将只读文件写入我的 SD 卡。我需要将此作为一个两步过程。

public void method1(String cacheFilename) {
File cacheDir = mContext.getExternalCacheDir();
File cachedFileOnDisk = new File(cacheDir, cacheFilename);
FileOutputStream fileStream = new FileOutputStream(cachedFile);
fileStream.write(...)
fileStream.flush();
fileStream.close();
}
public void method2(String cacheFilename) {
   File cacheDir = mContext.getExternalCacheDir();
   File cachedFileOnDisk = new File(cacheDir, cacheFilename);
   if(!cachedFileOnDisk.setReadOnly()) {
       throw new IllegalStateException(); 
}

其中方法 1 被调用,然后在后续阶段方法 2。该cachedFileOnDisk.setReadOnly()调用向我返回 false,我无法将文件设置为只读。

有没有办法可以将只读文件写入我的 SD 卡?

4

1 回答 1

5

sdcard 使用不支持文件所有权的 FAT 类型文件系统。

FAT 可以在实现级别支持只读位,但这将具有有限的价值,因为任何其他具有 sd 卡写入权限的东西都可以自由更改该位。鉴于价值有限,是否可以在 android 上设置它是一个悬而未决的问题。

于 2012-06-13T17:45:14.733 回答