Удалить файл из внутреннего хранилища - PullRequest
88 голосов
/ 30 марта 2011

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

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

Мой пример всегда возвращаетложный.Я могу увидеть файл fx 2930.jpg в DDMS в затмении.

Ответы [ 6 ]

124 голосов
/ 30 марта 2011

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

File file = new File(inputHandle.getImgPath(id));
boolean deleted = file.delete();
44 голосов
/ 30 марта 2011

Вы пробовали Context.deleteFile () ?

16 голосов
/ 16 сентября 2015

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

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

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));
14 голосов
/ 21 июля 2014
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' как строку, а затем запросить, чтобы конструктор, имеющий доступ к этой информации, возвращал абсолютный путь к каталогу в виде строки..

10 голосов
/ 23 января 2012

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

2 голосов
/ 15 августа 2013

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...