我有问题,希望你能帮助我。
在我的壁纸应用中,我将图像保存到SD卡,以便用户可以通过ActionBar共享功能在线共享。
以下是执行保存的代码:
Uri bmpUri = null;
try {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
file.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
} catch (IOException e) {
e.printStackTrace();
}
return bmpUri;
现在,我试图在用户离开活动时删除该图像(这意味着他已经共享了图像或决定不共享。无论哪种方式,它都不再需要了。)
我正在尝试使用此代码删除它(它在按钮上单击方法atm,但稍后会更改)
case R.id.btn_delete:
// File folder = (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
File folder = new File(Environment.getExternalStorageDirectory() + Environment.DIRECTORY_DOWNLOADS);
File[] filenamestemp = folder.listFiles();
for (int i = 0; i < filenamestemp.length; i++) {
if (filenamestemp[i].getAbsolutePath().toString().contains("share_image_"))
filenamestemp[i].delete();
}
break;
我看到它的方式,这应该有用......但它没有。
我尝试了各种各样的事情,但没有用。没有错误,没有。但下载目录中仍然存在图像。
任何帮助?
答案 0 :(得分:0)
我认为您为写入的文件获取了错误的目录
您正在通过
阅读文件File folder = new File(Environment.getExternalStorageDirectory() + Environment.DIRECTORY_DOWNLOADS);
而不是:
File folder = (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
这些目录不一样。
希望它有所帮助,如果你需要其他任何东西告诉我;)