📅  最后修改于: 2023-12-03 14:43:03.645000             🧑  作者: Mango
在Java中,我们可以使用File类来操作文件和文件夹。通过调用File类的方法,我们可以在文件夹中查找特定的文件,并计算出查找文件所花费的时间。
为了开始,我们需要创建一个Java项目,并在项目中创建一个名为FileSearch
的类。
我们将使用Java的File
类扫描文件夹,并返回文件夹中的所有文件和子文件夹。
public class FileSearch {
public void search(String folderPath) {
File folder = new File(folderPath);
if(!folder.isDirectory()) {
System.out.println(folderPath + " 不是一个文件夹!");
return;
}
File[] fileList = folder.listFiles();
for (File file : fileList) {
if (file.isDirectory()) {
search(file.getAbsolutePath());
} else {
System.out.println(file.getAbsolutePath());
}
}
}
}
上述代码中的search
方法接收一个文件夹的路径作为参数,并在文件夹中扫描所有的文件和子文件夹。如果文件夹路径无效,则方法会退出。我们使用listFiles
方法获取文件夹中的所有文件,并使用for
循环遍历文件列表。
接下来,我们将修改search
方法来支持在文件夹中查找指定的文件。我们会为该方法添加一个文件名的参数,并使用endsWith
方法来检查当前文件是否以该文件名结尾。如果是,则打印该文件的路径。
public class FileSearch {
public void search(String folderPath, String fileName) {
File folder = new File(folderPath);
if(!folder.isDirectory()) {
System.out.println(folderPath + " 不是一个文件夹!");
return;
}
File[] fileList = folder.listFiles();
for (File file : fileList) {
if (file.isDirectory()) {
search(file.getAbsolutePath(), fileName);
} else {
if (file.getName().endsWith(fileName)) {
System.out.println(file.getAbsolutePath());
}
}
}
}
}
为了计算查找所花费的时间,我们可以在方法中添加一个计时器,并记录开始和结束时间。我们使用System.currentTimeMillis()
方法获取当前时间,并计算时间差。
public class FileSearch {
public void search(String folderPath, String fileName) {
File folder = new File(folderPath);
if(!folder.isDirectory()) {
System.out.println(folderPath + " 不是一个文件夹!");
return;
}
File[] fileList = folder.listFiles();
long startTime = System.currentTimeMillis();
for (File file : fileList) {
if (file.isDirectory()) {
search(file.getAbsolutePath(), fileName);
} else {
if (file.getName().endsWith(fileName)) {
System.out.println(file.getAbsolutePath());
}
}
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("查找 " + fileName + " 所花费的时间: " + totalTime + " 毫秒");
}
}
现在我们已经准备好使用FileSearch
类来查找文件了。我们只需要创建一个类的实例,并调用search
方法,传递要搜索的文件夹和文件名。
public class Main {
public static void main(String[] args) {
String folderPath = "C:\\Users\\username\\Desktop\\folder";
String fileName = "example.txt";
FileSearch fileSearch = new FileSearch();
fileSearch.search(folderPath, fileName);
}
}
在这篇文章中,我们介绍了如何使用Java程序扫描文件夹,并在其中查找特定的文件。我们还演示了如何计算查找所花费的时间。