[android] 내부 저장소에서 파일 삭제

내부 저장소에 저장된 이미지를 삭제하려고합니다. 나는 이것을 지금까지 생각해 냈다.

File dir = getFilesDir();
File file = new File(dir, id+".jpg");
boolean deleted = file.delete();

그리고 이것은 다른 질문에서 나온 것 입니다 .

File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();

내 예는 항상 false를 반환합니다. fx 2930.jpg이클립스에서 DDMS 의 파일 을 볼 수 있습니다 .



답변

getFilesDir()어떻게 든 작동하지 않았다. 전체 경로와 파일 이름을 반환하는 메서드를 사용하여 원하는 결과를 얻었습니다. 다음은 코드입니다.

File file = new File(inputHandle.getImgPath(id));
boolean deleted = file.delete();


답변

Context.deleteFile () 시도해 보셨습니까 ?


답변

이것은 나를 위해 작동합니다.

File file = new File(photoPath);
file.delete();

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));


답변

String dir = getFilesDir().getAbsolutePath();
File f0 = new File(dir, "myFile");
boolean d0 = f0.delete();
Log.w("Delete Check", "File deleted: " + dir + "/myFile " + d0);

File dir = getFilesDir();File 객체에 대한 요청이므로 코드 가 작동하지 않습니다. 디렉토리 경로를 선언하는 문자열을 검색하려고하므로 ‘dir’을 문자열로 선언 한 다음 해당 정보에 액세스 할 수있는 생성자가 문자열 형식의 디렉토리 절대 경로를 반환하도록 요청해야합니다. .


답변

다음을 사용할 수도 있습니다. file.getCanonicalFile().delete();


답변

시도해 보셨습니까 getFilesDir().getAbsolutePath()?

전체 경로로 File 객체를 초기화하여 문제를 해결 한 것 같습니다. 나는 이것이 또한 트릭을 할 것이라고 믿습니다.


답변

File file = new File(getFilePath(imageUri.getValue()));
boolean b = file.delete();

내 경우에는 작동하지 않습니다.

boolean b = file.delete();                 // returns false
boolean b = file.getAbsolutePath.delete(); // returns false 

항상 거짓을 반환합니다.

아래 코드를 사용하여 문제가 해결되었습니다.

ContentResolver contentResolver = getContentResolver();
contentResolver.delete(uriDelete, null, null);