Удаление файла из внутренней памяти


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

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.

6 76

6 ответов:

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

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

вы пробовали контексте.deleteFile () ?

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 file = new File(photoPath);
file.delete();

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

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

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

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