2012-11-06 2 views
0

이전에 Android 앱에서 만든 파일을 삭제하려고합니다. 내가 가지고있는 문제는 파일이 사라지지 않을 것이라는 점입니다. 모든 것이 효과가있는 것 같지만.android의 개인 저장소에서 파일 삭제

나는 stackoverflow에서 여러 게시물을 보았지만 여전히 해결책은 아닙니다. 가비지 수집은 내가 발견 한 힌트 중 하나였습니다.

System.gc(); 
System.out.println("Exists: "+file.exists()); 
System.out.println("Read: "+file.canRead()); 
System.out.println("Write: "+file.canWrite()); 
System.out.println("Deleting: " + file); 
boolean r = file.delete(); 
System.out.println("Result of deletion: "+r); 
System.gc(); 

그리고 로그의 결과

Exists: true 
Read: true 
Write: true 
Deleting: data/data/no.ntnu.kpro.app/files/kprothales/XOMessage/8 
Result of deletion: true 

사람이 제거되지 않은 이유에 어떤 생각을 가지고 있습니까?

편집 : Lucifer : 예, 매니페스트에서 WRITE_EXTERNAL_STORAGE 권한을 설정했습니다. ShineDown : 아니, 확장명이없는 파일 일뿐입니다. 지금은 xml을 포함하고 있지만 시간이 지남에 따라 바뀔 것입니다. 따라서 왜 .xml이라고 부르지 않았습니까? 이것이 문제가 될 수 있습니까? chintan khetiya : 나는이 줄이 이미 위의 코드에 포함되어 있다고 생각합니다. 대답 여기

+0

당신은 manifest에 FILE 권한을 부여 했습니까? – Lucifer

+0

폴더입니까? 그 안에 파일이 더 있으면 삭제할 수 없습니다.이 경우 먼저 모든 내부 파일을 삭제하십시오. – ShineDown

+0

부울 삭제됨 = mypath.delete(); // mypath는 삭제할 경로입니다. –

답변

1

검사 :

Android: how to delete internal image file

기본적으로 DeleteFile을 전화를 제안한다 : (activity.deleteFile (참고 ImageName)) Log.i (TAG, "이미지가 삭제 한 경우

. ");

+0

답변을 주셔서 감사하지만,이 질문은 거의 1 년간 죽었습니다. 이 문제가 해결 되었으면 좋겠지 만 atm 테스트 방법은 없습니다. 간단한 오류 발생 스 니펫 (snipplet)을 포함하지 않기 때문에 바보입니다. sidenote : 안드로이드는'delete' 메소드에 관한 문서를 준수해야하고,'true '를 반환하면 파일 (타입에 관계없이)을 삭제해야한다고 생각합니다. 파일 확장명을 사용하지 않고 파일을 삭제하려고 시도했는지는 알 수 없지만 내 경우에는 오류 일 수 있습니다. 그렇지 않은 경우 오류를 찾는 데 도움이됩니다. – atomman

+0

어쨌든, +1. 그냥 해결책을 찾고 내 문제를 해결하려고 노력했습니다. 고맙습니다. :) 솔루션을 테스트하는 방법이 있다면 답변을 수락 할 것이지만 코드는 사용자에게 전달되어 도달 범위를 벗어납니다. – atomman

관련 문제