2017-01-24 2 views
0

파일 권한을 읽기 전용으로 설정하려고 시도했지만 아무 효과가없는 것으로 보입니다.Android File.setReadyOnly()가 예상대로 작동하지 않습니다.

File file = new File(mContext.getExternalFilesDir(null), "testFile"); 

if (!file.exists()){ 
    file.createNewFile(); 
} 

boolean successful = file.setReadOnly(); 
boolean canRead = file.canRead(); 
boolean canWrite = file.canWrite(); 

Log.d("TAG", String.format("Permissions write successful: %s for file: %s", successful, file.getAbsolutePath())); 
Log.d("TAG", String.format("Can read: %s , Can write: %s", canRead, canWrite)); 

콘솔 출력 위를 수행하는 것입니다 :

D/TAG: Permissions write successful: true for file: /storage/emulated/0/Android/data/package.name/files/testFile 
D/TAG: Can read: true , Can write: true 

는 비록 그 파일에 기록 할 수 없어야 여기에 코드입니다. 여기에 어떤 문제가 있습니까?

+0

당신은 또한 그것에 쓸 수 있습니다. –

답변

1

필자가 아는 바에 따르면 완전히 확인되지 않았기 때문에 파일을 외부 저장소에두면 읽기 전용을 변경할 수 없습니다. 정확한 문서는 잘 모르겠지만 동일한 문제가있어 도움이되는 문서에서이 줄을 잘 만들 수 있습니다.

외부 저장 : 여기

는 문서입니다 - 여기에 저장된 파일은 당신의 통제 밖에서 읽을 수 있도록 그것은 세계 읽을 수 있습니다. 사용자가 앱을 제거하면 getExternalFilesDir() 디렉토리에 저장 한 경우에만 앱의 파일이 여기에서 제거됩니다.

당신은 전체 요약 here을 따를 수 있습니다.

+0

이것이 사실 인 것 같지만 어떤 문서도 찾을 수 없으므로 본 적이 있습니까? –

+0

나는 대답을 편집했습니다 :) –

관련 문제