📜  java程序扫描文件夹使用时间查找文件 - Java(1)

📅  最后修改于: 2023-12-03 14:43:03.645000             🧑  作者: Mango

Java程序扫描文件夹使用时间查找文件

在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程序扫描文件夹,并在其中查找特定的文件。我们还演示了如何计算查找所花费的时间。