2012-06-13 6 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() 호출이 false를 반환하고 파일을 읽기 전용으로 설정할 수 없습니다.

내 SD 카드에 읽기 전용 파일을 쓸 수있는 방법이 있습니까?

답변

5

sdcard는 파일 소유권을 지원하지 않는 FAT 유형 파일 시스템을 사용합니다.

FAT의 구현 수준에서 읽기 전용 비트를 지원할 수는 있지만, sd 카드 쓰기 권한이있는 다른 사람이 비트를 자유롭게 변경할 수 있으므로 제한된 값입니다. 제한된 가치를 감안할 때, 안드로이드에서 설정하는 것이 가능하다면 열린 질문입니다.

관련 문제