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

Java 在特定目录中查找文件名并存储在数组列表中的代码,java,arraylist,Java,Arraylist,各位早上好, 我被困在这里的代码,我正试图使工作。这段代码的目标是使用递归算法查找与目标文件名匹配的所有文件。每个字符串都应该将路径名存储到匹配的文件中。如果找不到匹配的文件,则返回null。以下是我到目前为止的情况: import java.io.File; import java.util.ArrayList; public class ArrayListFiles { public static ArrayList searchForFile (File dir, Ar

各位早上好,

我被困在这里的代码,我正试图使工作。这段代码的目标是使用递归算法查找与目标文件名匹配的所有文件。每个字符串都应该将路径名存储到匹配的文件中。如果找不到匹配的文件,则返回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);
            }
        }

    }
}
导入java.io.File;
导入java.util.ArrayList;
公共类ArrayList文件
{
公共静态ArrayList searchForFile
(文件目录、ArrayList文件路径、字符串目标)
{
如果(!dir.isDirectory())
返回null;
其他的
{
File[]files=dir.listFiles();
for(int index=0;index

我对编程非常陌生,如果我遗漏了一些非常明显的东西,我会提前道歉。提前感谢您,祝您度过愉快的一天

这可能是您的问题:

int index = 0; index < filePaths; index++
int索引=0;索引<文件路径;索引++
FilePath是一个arraylist,您将其用作整数。 您可能想要遍历文件?试一试

int index = 0; index < files.length; index++
int索引=0;索引
要解决此错误,请将“类型不匹配:无法从元素类型对象转换为字符串”for(字符串字符串:文件路径)。
“将代码更改为:

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);
            }
        }
ArrayList filepath=new ArrayList();
File rootFolder=新文件(“F:\\java”);
字符串targetFile=“sample.txt”;
filepath=searchForFile(rootFolder、filepath、targetFile);
if(filepath==null)
System.out.println(“未找到文件”);
其他的
{
for(字符串:文件路径)
{
System.out.println(字符串);
}
}
FilePath是一个arraylist,它应该如下所示:

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

希望这有帮助

这段代码有什么问题?我正在使用Eclipse,我有两个错误,分别是“(int index=0;index