簡體   English   中英

在特定目錄中查找文件名並存儲在數組列表中的代碼

[英]A code that looks for a file name in a specific directory and store in in the array list

大家,早安,

我被困在這里的代碼,我試圖使之工作。 此代碼的目標是創建一個遞歸算法,以查找與目標文件名匹配的所有文件。 每個字符串應將路徑名存儲到匹配文件。 如果找不到匹配的文件,則返回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);
            }
        }

    }
}

我對編程非常陌生,如果我遺漏了一些非常明顯的內容,請提前道歉。 在此先感謝您,祝您生活愉快!

解決此錯誤, "Type mismatch: cannot convert from element type Object to String" for "for (String string : filePaths). ”的代碼更改"Type mismatch: cannot convert from element type Object to String" for "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是一個arraylist,它應如下所示:

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

希望這可以幫助 。

這可能是您的問題:

int index = 0; index < filePaths; index++

FilePaths是一個數組列表,您將其用作整數。 您可能想遍歷文件? 嘗試

int index = 0; index < files.length; index++

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM