我正在尝试将只读文件写入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卡?
答案 0 :(得分:5)
sdcard使用不支持文件所有权的FAT类型文件系统。
在FAT的实现级别上可以支持只读位,但由于具有sd卡写入权限的任何其他内容都可以自由更改该位,因此该值将是有限的。鉴于价值有限,如果甚至可以在Android上设置它,这是一个悬而未决的问题。