📜  打印目录最后修改时间的Java程序(1)

📅  最后修改于: 2023-12-03 15:25:46.387000             🧑  作者: Mango

打印目录最后修改时间的Java程序介绍

本文将介绍一款用Java编写的程序,可以打印出指定目录下所有的文件和子目录的最后修改时间。

背景

在实际生产开发中,经常需要查看文件或目录的修改时间,以便进行维护和管理。然而,人工查看显然效率很低,因此编写一个程序,自动打印出目录和文件的最后修改时间,能够大大提高效率。

功能

本程序可以实现以下功能:

  1. 支持指定目录路径,打印目录下所有的文件和子目录的最后修改时间;
  2. 支持输出到控制台或文本文件;
  3. 支持指定输出文件的路径和文件名。
使用方法
  1. 下载本程序;
  2. 打开命令行终端,进入程序所在目录;
  3. 输入以下命令:
java PrintDirectoryLastModifyTime [directoryPath] [outputPath] [fileName]

其中,directoryPath 为指定的目录路径,outputPath 是输出文件的路径,fileName 是输出文件的名称。若不指定 outputPathfileName,则默认输出到控制台。

代码片段

以下是本程序的关键代码片段,仅供参考。

public static void printDirectoryLastModifyTime(String directoryPath, String outputPath, String fileName) throws IOException {
    File directory = new File(directoryPath);
    File[] files = directory.listFiles();
    Arrays.sort(files); // 排序,让输出结果有序

    if (outputPath != null && fileName != null) {
        File output = new File(outputPath, fileName);
        if (!output.exists()) {
            output.createNewFile();
        }
        PrintWriter writer = new PrintWriter(new FileWriter(output));
        for (File file : files) {
            String line = file.getName() + "\t" + new Date(file.lastModified());
            writer.println(line);
            if (file.isDirectory()) {
                printDirectoryLastModifyTime(file.getAbsolutePath(), outputPath, fileName);
            }
        }
        writer.close();
    } else {
        for (File file : files) {
            System.out.println(file.getName() + "\t" + new Date(file.lastModified()));
            if (file.isDirectory()) {
                printDirectoryLastModifyTime(file.getAbsolutePath(), null, null);
            }
        }
    }
}

本程序使用递归方法,遍历指定目录下的所有文件和子目录,并输出它们的最后修改时间。如果指定了输出到文件,则将结果输出到指定文件中。

总结

本文介绍了一款用Java编写的程序,可以打印出指定目录下所有的文件和子目录的最后修改时间。程序功能完善,并且易于使用,希望可以对广大程序员提供帮助。