gpt4 book ai didi

java - 遍历目录查找特定文件夹

转载 作者:行者123 更新时间:2023-12-02 00:42:36 25 4
gpt4 key购买 nike

在此处输入代码我编写了以下代码,该代码递归地搜索文件夹目录以查找特定文件夹。该程序应该检查文件夹名称,如果文件夹名称是“src”,那么它应该进入该文件夹以获取所有文件。目前该程序正在从所有目录中获取所有文件。

public class Main {

public static void main(String[] args) {
File fileObject = new File("C:\\Users\\lizzie\\Documents\\");
recursiveTraversal(fileObject);
}

public static void recursiveTraversal(File fileObject)
{
if (fileObject.isDirectory())
{
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursiveTraversal(aFile);
}
}
else if (fileObject.isFile())
{
System.out.println(fileObject.getAbsolutePath());
}
}

}

当我检查某个文件夹是否是目录时,我添加了以下约束,但这没有帮助。

if (fileObject.isDirectory() && fileObject.getName().equals("src"))`

请让我知道我可以做些什么来改进我的代码。任何事情都会受到赞赏。谢谢

最佳答案

如果您查看 recursiveTraversal 中的 if-else,您会发现您正在打印任何不是目录的内容,无论它位于何处。这是一个修复:

public class Main {

public static void main(String[] args) {
File fileObject = new File("C:\\Users\\lizzie\\Documents\\");
recursiveSearch(fileObject);
}

public static void recursiveSearch(File fileObject) {
if (fileObject.isDirectory()) {
if (fileObject.getName().equals("src")) {
recursivePrint(fileObject);
} else {
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursiveSearch(aFile);
}
}
}
// ignore non-directory objects during search
}

public static void recursivePrint(File fileObject)
{
if (fileObject.isDirectory())
{
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){
recursivePrint(aFile);
}
}
else if (fileObject.isFile())
{
System.out.println(fileObject.getAbsolutePath());
}
}
}

这将以递归方式打印任何名为 src 的目录的所有文件。

关于java - 遍历目录查找特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891707/

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