删除Android SD卡上的文件

时间:2014-09-03 16:00:28

标签: android android-sdcard android-file

在我的应用程序中,我可以拍摄照片并使用以下代码保存:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

imageCaptureUri = Uri.fromFile(new File(context.getExternalFilesDir(null),
                        "tmp_image_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageCaptureUri);
intent.putExtra("return-data", true);

我尝试使用以下代码从SD卡中删除该文件:

File f = new File(imageCaptureUri.getPath());            

if (f.exists() == true) 
{
    boolean state = f.delete();
    Toast.makeText(context, "" + state, Toast.LENGTH_LONG).show();
}

Toast的输出为true,但SD卡上的文件未删除。我在Android KitKat上测试了它,但它也应该适用于较旧的Android版本。你有什么想法我不能删除照片吗?

我在清单文件中使用了android.permission.WRITE_EXTERNAL_STORAGE

2 个答案:

答案 0 :(得分:0)

通过快速搜索,我发现有时偶尔需要拨打System.gc()。在System.gc()

之后致电f.delete()

答案 1 :(得分:0)

KitKat对应用程序如何访问文件进行了一些更改。即使在外部存储器中也是如此。

由于这是一个临时文件,我建议您将其重新定位到您自己的应用空间,例如context.getCacheDir。这可能会奏效。