gpt4 book ai didi

java - 在特定目录中查找文件名并将其存储在数组列表中的代码

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

大家早上好,

我被困在这里,我正在尝试使代码工作。此代码的目标是制定递归算法来查找与目标文件名匹配的所有文件。每个字符串应存储匹配文件的路径名。如果没有找到匹配的文件,则返回 null。这是我到目前为止所拥有的:

import java.io.File;
import java.util.ArrayList;

public class ArrayListFiles
{
public static ArrayList searchForFile
(File dir, ArrayList filePaths, String target)
{
if (!dir.isDirectory())
return null;
else
{
File[] files=dir.listFiles();
for (int index = 0; index < filePaths; index++)
{
if(files[index].isFile())
{
if(files[index].getName().equals(target))
{
filePaths.add(files[index].toString());
}
}
else if(files[index].isDirectory())
searchForFile(files[index], filePaths, target);
}
}
return filePaths;
}
public static void main(String[] args)
{
ArrayList filePaths = new ArrayList();
File rootFolder = new File("F:\\java");
String targetFile = "sample.txt";
filePaths = searchForFile(rootFolder, filePaths, targetFile);
if(filePaths==null)
System.out.println("No file is found");
else
{
for (String string : filePaths)
{
System.out.println(string);
}
}

}
}

我对编程非常陌生,如果我遗漏了一些非常明显的东西,请提前道歉。预先感谢您,祝您有美好的一天!

最佳答案

要解决此错误“类型不匹配:无法从元素类型对象转换为字符串”对于“for (String string : filePaths)。”将代码更改为:

ArrayList<String> filePaths = new ArrayList<String>();
File rootFolder = new File("F:\\java");
String targetFile = "sample.txt";
filePaths = searchForFile(rootFolder, filePaths, targetFile);
if(filePaths==null)
System.out.println("No file is found");
else
{
for (String string : filePaths)
{
System.out.println(string);
}
}

FilePaths 是一个数组列表,应如下所示:

 for (int index = 0; index < files.length; index++)

希望这有帮助。

关于java - 在特定目录中查找文件名并将其存储在数组列表中的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45128127/

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