Android: как удалить внутренний файл изображения - PullRequest
10 голосов
/ 10 августа 2010

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

Я успешно создал и сохранил:

String imageName = System.currentTimeMillis() + ".jpeg";
FileOutputStream fos = openFileOutput(imageName, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 35, fos);

изображение, которое я получаю через

bitmap = BitmapFactory.decodeStream(inputStream);

Я могу получить изображение позже для отображения:

FileInputStream fis = openFileInput(imageName);
ByteArrayOutputStream bufStream = new ByteArrayOutputStream();
DataOutputStream outWriter = new DataOutputStream(bufStream);

int ch;
while((ch = fis.read()) != -1)
    outWriter.write(ch);

outWriter.close();
byte[] data = bufStream.toByteArray();
bufStream.close();
fis.close();

imageBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

Теперь я хочу удалить этот файл навсегда.Я попытался создать новый файл и удалить его, но файл не найден:

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

Я прочитал на сайте разработчика Android, что я должен открыть личные внутренние файлы, используя метод openFileInput(...), который возвращаетInputStream, позволяющий мне читать содержимое, которое меня не волнует - я просто хочу его удалить.

Может ли кто-нибудь указать мне правильное направление для удаления файла, который хранится во внутренней памяти?

1 Ответ

23 голосов
/ 10 августа 2010

Эрг, я сам нашел ответ.Простой ответ: (

Все, что вам нужно сделать, это вызвать метод deleteFile(imageName).

if(activity.deleteFile(imageName))
    Log.i(TAG, "Image deleted.");

Готово!

...