我正在做一个贝壳。在控制台上,当用户输入cd "path"时,当前目录将在给定路径中更改。当用户输入find "filename"时,我的程序将在该目录中搜索该文件并返回该目录的路径。

我写了一种方法,可以打印所有文件,包括该目录上的子目录...,但是我不明白如何查找用户输入的特定文件并打印文件路径。

我想我必须用/分割路径,而不是将它们存储到ArrayList中,而不是与用户输入"filename"相等。我不知道如何将路径拆分为ArrayList<File>

我的方法的当前状态:

public static void findFilesInDirectory()
    {
        ArrayList<File> anArray = new ArrayList<File>();
        String getDirectoryName = presentWorkingDirectory;

        findFilesProcess(getDirectoryName, anArray);


        for(File str: anArray)
        {

            System.out.println("Hamza Found File: " + str);

        }
    }
public static void findFilesProcess(String directoryName, ArrayList<File> files)
{

        File directory = new File(directoryName);
        File[] fList = directory.listFiles();
        for (File file : fList)
        {
            if (file.isFile())
            {
                files.add(file);
            }
            else if (file.isDirectory())
            {
                findFilesProcess(file.getAbsolutePath(), files);

            }

        }

最佳答案

要在目录中查找文件:

public static File[] findFilesInDirectory(String presentWorkingDirectory) {
    // your directory
    File f = new File(presentWorkingDirectory);
    File[] matchingFiles = f.listFiles();
    return matchingFiles;
}

09-30 14:39
查看更多