3

我使用以下命令保存了一些文件:

File file = new File(cont.getExternalFilesDir(null), filename);

如何删除我保存的所有文件?我需要清除cont.getExternalFilesDir(null)目录的内容。谢谢

4

3 回答 3

4

如果您只想删除一个文件,您可以按照 Perroloco 的说明进行操作,但如果您需要删除所有内容,我认为 OO 方法会更好:)

首先构建一个递归删除目录中文件的方法

private void deleteAllContent(File file,String... filename) {
    if (file.isDirectory())
        for (File child : file.listFiles())
            deleteAllContent(child);
    if(filename==null)
        file.delete();
    else
        for(String fn:filename)
            if(file.getName().equals(filename))
                file.delete(); 
}

然后你可以用你的外部文件目录调用你的新方法。

deleteAllContent(cont.getExternalFilesDir(null));

或者

deleteAllContent(cont.getExternalFilesDir(null),"myfile1","myfile2","etc");
于 2014-03-20T20:31:59.397 回答
2
File file = new File(cont.getExternalFilesDir(null), filename);
file.delete();
于 2014-03-20T20:22:09.863 回答
0

您可以使用以下方法删除删除任何Dir内容:

private static boolean deleteDir(File dir) {
    if (dir != null && dir.isDirectory()) {
        String[] children = dir.list();
        if (children != null) {
            for (String child : children) {
                boolean success = deleteDir(new File(dir, child));
                if (!success) {
                    return false;
                }
            }
        }
        return dir.delete();
    } else if (dir != null && dir.isFile()) {
        return dir.delete();
    } else {
        return false;
    }
}

然后只需调用:

 try {
        File dir = this.getExternalFilesDir("yourdirname");
        deleteDir(dir);
    } catch (Exception e) {
        e.printStackTrace();
    }
于 2020-01-21T19:21:26.487 回答