2014-12-06 7 views
2

디렉토리의 모든 파일을 검색하는 코드가 있는데이 파일을 삭제해야합니다. 하지만 웬일인지 그것들을 삭제하지는 않습니다.Android 4.4.2 파일을 삭제하지 않음

는 내가 가지고있는 것은 이것이다 : 다음이 코드를 디버깅 할 때

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Images/"; 
File f = new File(path); 
File file[] = f.listFiles(); 
for (File aFile : file) { 
    boolean isDeleted = aFile.delete(); 
    if(isDeleted) { 
     log.d("file", "is deleted"); 
    } 
} 

그것은 isDeletedtrue 것을 모든 파일에 대해 말한다. 나는 "갤러리/이미지"를 확인하지만 ... 나는 모든 이미지가 여전히 있다는 것을보고 내 전화에 폴더

나는 또한 나의 매니페스트에 다음과 같은 두 가지 권한이 있습니다

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

사람은 어떤 생각을 파일이 삭제되지 않는 이유는 무엇입니까? isDeletedtrue입니까?

+0

를? 당신이 무슨 뜻인지 확실하지? 또한 삭제하려는 파일이 다른 앱의 폴더에 저장됩니다. – Vivendi

+0

KitKat에서는이 작업을 수행 할 수 없습니다. 당신은 루트가 있어야합니다. – Simon

+0

@ 사이먼 사실이 아닙니다. Kitkat에서는 문제가 2 차 외부 저장 장치에만 있습니다. OP 코드에서 액세스가 기본 외부 저장소에서 수행 되었음이 분명합니다. – greywolf82

답변

3

Android 4.4.2에서는 파일을 더 이상 삭제할 수 없습니다. 적어도 다른 앱에서 만든 파일이 아닙니다. 이것은 새로운 (그리고 멍청한) 제한입니다.

당신이해야 할 일은 휴대폰을 뿌리 뽑은 다음 SDFix 나 이와 비슷한 앱을 설치하는 것입니다. 그렇게하면 SD 카드에 다시 액세스 할 수 있습니다.

현재 가장 좋은 방법입니다.

또는 당신은이 게시물에서와 같이 "허점"을 시도 할 수 : greywolf82 Mediascanner @

How to delete a file from SD card?

+0

왜 멍청한가요? 과거에 내 SDCard였던 완전히 혼란을 통제하는 것에 대한 찬성표를 얻었으며 분명히 보안 강화입니다. 그게 뭐가 잘못 됐어? – Simon

+0

OP 질문은 getExternalStorageDirectory() 메서드가 외부 SD 카드의 경로를 제공하지 않기 때문에 SD 카드가 아니라 "내부"저장소 경로 만 제공하기 때문에 (이름이 더 나은 선택이 아니라는 것을 알고 있습니다. Google 제공). – greywolf82

+0

@ greywolf82 무엇. SD/내부 저장 장치. 이것은 그가 직면하고있는 문제이며 그것들을 해결할 유일한 해결책입니다. 그래서 저는 아래 표를 이해하지 못합니다. – w00