Удаление файла из внутреннего хранилища

Я пытаюсь удалить изображения, хранящиеся во внутреннем хранилище. Я придумал это до сих пор:

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 в eclipse.

Ответ 1

getFilesDir() как-то не сработал. Используя метод, который возвращает весь путь и имя файла, дал желаемый результат. Вот код:

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

Ответ 3

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" как String, а затем запросить, чтобы абсолютный путь каталога в форме String возвращался конструктором, который имеет доступ к этой информации.

Ответ 4

Это работает для меня:

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

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

Ответ 5

Вы также можете использовать: file.getCanonicalFile().delete();

Ответ 6

Вы пробовали getFilesDir().getAbsolutePath()?

Кажется, вы исправили свою проблему, инициализируя объект File полным путем. Я верю, что это тоже поможет.