我正在做一个贝壳。在控制台上,当用户输入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;
}