列出目录中丢失的文件并删除所有多余的文件

缺口

我正在尝试找出如何将目录中的文件与已批准文件的列表进行比较。我想显示丢失的文件,并删除所有多余的文件。

我的代码-

String[] approvedFiles = {"AAA.enc","LCQ.enc","MZXA.enc", "BBB.enc"};
    File folder = new File("test/");
    File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
        //if (How to compare here?)
            System.err.println("File " + approvedFiles[i] + " missing.");
    }

我将如何实现呢?

蒂姆·比格莱森(Tim Biegeleisen)

一种简单的方法是将批准的文件数组和当前文件数组转换为集合,然后减去它们。

我首先创建一个映射,该映射将您手头的文件的字符串名称与它们的实际对应File对象相关联。approvedFilesSet产生值中减去此映射的键集会产生额外的文件。如果您还需要删除这些文件,则地图会派上用场,因为File可以从查找中获取原始对象。

String[] approvedFiles = {"AAA.enc","LCQ.enc","MZXA.enc", "BBB.enc"};
Set<String> approvedFilesSet = new HashSet<String>(Arrays.asList(approvedFiles));
File folder = new File("test/");
File[] listOfFiles = folder.listFiles();

Map<String, File> haveFilesMap = new HashMap<>();
for (File file : listOfFiles) {
    if (file.isFile()) {
        haveFilesMap.put(file.getName(), file);
    }
}

// subtract the have files from the approved files
approvedFilesSet.removeAll(haveFilesMap.keySet());

for (String file : approvedFilesSet) {
    System.err.println("File " + file + " missing.");

    // uncomment the following if you also want to delete these extra files
    /*
    try {
        Files.delete(haveFilesMap.get(file).toPath());
    }
    catch (Exception e) {
        System.err.println("Error deleting file " + file);
    }
    */
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Git:列出所有分支中目录中的所有文件吗?

来自分类Dev

列出多个目录中的所有文件

来自分类Dev

hg删除.hgignore中列出的所有文件

来自分类Dev

Inno Setup:列出目录中的所有文件名

来自分类Dev

Perl删除目录中的所有文件

来自分类Dev

递归列出目录中的所有文件(Unix)

来自分类Dev

PHP列出目录中的文件并删除扩展

来自分类Dev

列出目录中的所有文件-按大小过滤

来自分类Dev

列出目录中的所有文件:如何检测结果是文件还是子目录?

来自分类Dev

如何列出资源目录中的所有文件

来自分类Dev

如何使用python动态列出目录中的所有文件?

来自分类Dev

在寡妇中使用python列出目录中的所有文件

来自分类Dev

删除Rust中目录中的所有文件

来自分类Dev

列出多个目录中的所有文件

来自分类Dev

如何从目录中删除所有文件?

来自分类Dev

如何从* .docx文件中删除所有多余的空格?

来自分类Dev

递归列出目录中的所有文件(Unix)

来自分类Dev

如何删除所有目录中的所有文件?

来自分类Dev

删除目录中的所有文件,但保留目录吗?

来自分类Dev

删除目录中的所有文件

来自分类Dev

如何列出目录中的所有文件-部署

来自分类Dev

列出目录中具有其编码的所有文件

来自分类Dev

如何删除除目录中的文件以外的所有文件?

来自分类Dev

列出目录中的所有XML文件,从最新到最旧

来自分类Dev

列出C ++目录中的所有文本文件

来自分类Dev

删除目录中所有目录中的文件

来自分类Dev

删除目录中的所有文件,而不删除目录

来自分类Dev

删除目录中所有不在目录副本中的文件

来自分类Dev

需要在 AIX 上列出目录中的所有文件

Related 相关文章

热门标签

归档