2012-06-13 108 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上設置。