[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);