在安卓SD卡上创建只读文件尝试失败

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(); 
}

在method1中调用了方法1,然后在后续阶段调用了method2。 cachedFileOnDisk.setReadOnly()的调用返回false,我无法将文件设置为只读。

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

1个回答

5

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

在实现级别上,FAT可以支持只读位,但由于具有SD卡写入权限的任何其他东西都可以自由更改位,因此这将具有有限的价值。鉴于其有限的价值,问题是是否可能在安卓上设置它仍然存在争议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接