2012-06-13 71 views
3

我正在尝试向我的SD卡写入只读文件。我需要这样做的两个步骤。尝试在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()调用对我返回一个错误,我无法将该文件设置为只读。

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

回答

5

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

在FAT的实现级别上可能支持只读位,但这是有限的值,因为任何其他具有SD卡写入权限的地方都可以自由更改该位。鉴于有限的价值,这是一个开放的问题,如果它甚至可以在Android上设置。