-1

我正在寻找一种干净简单的方法来删除我的应用放入公共画廊的所有图片。

我试过这个,但它不起作用,虽然它进入了正确的目录:

File dir =
  Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
    File[] files = dir.listFiles();
    if (files != null){
    for (File file : files) {
        deleteRecursively(file);
    }
}

我需要许可吗?为什么我不能删除我在我的应用程序中创建的文件?

这是 deleteRecursively 方法:

void deleteRecursively(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory()){
        for (File child : fileOrDirectory.listFiles()){
            deleteRecursively(child);
        }
    }
    fileOrDirectory.delete();
}
4

2 回答 2

1

尝试将 deleteRecursively() 方法更改为:

void deleteRecursively(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory()){
        for (File child : fileOrDirectory.listFiles()){
            deleteRecursively(child);
        }
    } else {
        fileOrDirectory.delete();
    }
}
于 2012-08-13T09:56:46.267 回答
0

您必须在清单文件中添加使用权限android.permission.WRITE_EXTERNAL_STORAGE"

于 2012-08-13T09:44:45.657 回答