gpt4 book ai didi

java - 在 Java 中,如何递归列出文件夹中与扩展名数组不匹配的所有文件?

转载 作者:行者123 更新时间:2023-11-30 03:52:15 24 4
gpt4 key购买 nike

我正在制作一个简单的程序,它递归地查找目录并删除与用户选择的文件扩展名不匹配的所有文件。 (本质上我正在重新编写一个用 PHP 编写的脚本来帮助自学 java)

该方法工作正常,只是它返回与扩展名数组匹配的文件数组。这将删除错误的文件。如何返回不匹配的文件?

我使用 org.apache.commons.io.FileUtils 和字符串数组来获取文件:

import java.io.File;
import java.util.List;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class Recurse {
// The method that takes a directory path (file object called folder) and a string of extensions
public static List<File> getFiles(final File folder, String[] extensions) throws IOException{

List<File> fileList = (List<File>) FileUtils.listFiles(folder, extensions, true);

return fileList;
}
}

我发现只使用一种文件类型的示例,例如“.txt”,但找不到用于数组的文件类型。我宁愿坚持使用 org.apache.commons.io.FileUtils,但我愿意改变我的方法。

最佳答案

我同意 rcook 的回答,但如果您真的想坚持使用 FileUtils,这里有一个替代方案:获取所有文件,然后删除与扩展名匹配的文件。

List<File> all = (List<File>) FileUtils.listFiles(folder, null, true);
List<File> unwanted = (List<File>) FileUtils.listFiles(folder, extensions, true);
all.removeAll(unwanted);
return all;

请注意,这有点浪费,涉及通过文件系统的两次递归。

关于java - 在 Java 中,如何递归列出文件夹中与扩展名数组不匹配的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com