Android:如何删除内部图像文件

标签 android storage internal

我想做什么:从我的应用程序的私有(private)内部存储中删除一个图像文件。我将图像保存在内部存储器中,以便在应用程序卸载时删除它们。

我已成功创建并保存:

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(...) 方法打开私有(private)内部文件,该方法返回一个 InputStream 允许我读取内容,但我没有这样做真的很在意 - 我只想删除它。

谁能指出我删除存储在内部存储器中的文件的正确方向?

最佳答案

呃,我自己找到了答案。答案也很简单:(

您所要做的就是调用 deleteFile(imageName) 方法。

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

完成!

关于Android:如何删除内部图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3451896/

相关文章:

Android 通过 Intent 启动或显示另一个应用程序

java - 如何从应用程序打开外部存储中的文件? (安卓)

javascript - 从 sdcard 加载 html 到 android 中的 webview 时出现 HTML、css、js 问题?

swift - 当我在 Swift 4 中显式使用内部访问控制级别时

Android 使用的 JAVA 宏(存在吗?)

Android TextView 可点击 <a href/> 标签并链接到浏览器

android - 创建的文件在 android 中物理存储在哪里?

python - 为什么 python `any` 返回一个 bool 值而不是值?

Android - 将文件保存到内部存储器

android - 如何将 signal() 移植到 sigaction()?