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

时间:2012-06-13 17:42:38

标签: android

我正在尝试将只读文件写入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,然后调用后续的method2。 cachedFileOnDisk.setReadOnly()调用向我返回false,我无法将该文件设置为只读。

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

1 个答案:

答案 0 :(得分:5)

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

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