我正试图将只读文件写入我的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。
调用返回一个false,我无法将文件设置为只读。
有没有办法把只读文件写到我的SD卡上?

最佳答案

SD卡使用不支持文件所有权的胖类型文件系统。
在实现级别上,fat可以支持只读位,但这将是有限的,因为任何具有sd卡写权限的其他东西都可以自由更改该位。考虑到这个有限的价值,这是一个开放的问题,如果它甚至可以设置在Android上。

10-05 22:10