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

📅  最后修改于: 2022-05-13 01:54:53.140000             🧑  作者: Mango

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

可以使用Java显示任何包含多个文件的文件夹/目录的最后修改日期。使用Java中的last Modified Time方法可以提取任何文件夹中任何文件的最后修改时间。

方法:

在一个文件夹中,我们有多个文件,所以会有多个形成日期。然后获取文件夹的正确修改日期很困难,因为存在创建/修改文件然后从文件夹中删除的情况。

因此,查找文件夹修改日期的方法是迭代该文件夹中的每个文件并计算每个文件的修改时间/日期,无论哪个时间/日期较小,将被视为文件夹的修改日期

下面是上述方法的实现

Java
// Java Program to Print the last
// modification time of a directory
import java.io.*;
import java.util.*;
class GFG {
  
    public static void main(String[] args)
    {
        // Create an object of the File class
        // Replace the file path with path of the file
        // who's "last modified" date you want to change
        File myFile = new File("/home/mayur/GFG.java");
        
        long modifiedValue = myFile.lastModified();
        Date modifiedDate = new Date(modifiedValue);
        System.out.println(modifiedDate);
    }
}


Java
package com.BotArmy;
  
// Java Program to Print the last
// modification time of a directory
import java.io.*;
import java.util.*;
class time {
    public static Date getLastModified(File directory)
    {
        // Accessing each file from a folder in File array:
        File[] files = directory.listFiles();
        if (files.length == 0)
            return new Date(directory.lastModified());
        // Sorting each file based on its lastModified
        // Time using the comparator
        Arrays.sort(files, new Comparator() {
            public int compare(File o1, File o2)
            {
                // returning the file modified time
                // in the increasing way
                return Long.valueOf(o2.lastModified())
                        .compareTo(
                                o1.lastModified()); // latest 1st
            }
        });
        return new Date(files[0].lastModified());
    }
}
class Main {
    public static void main(String[] args)
    {
        // taking the file directory location
        File directory = new File(
                "/home/mayur/");
        Date myDate = time.getLastModified(directory);
        System.out.println("date: " + myDate);
    }
}


输出:

文件夹的修改日期/时间:

这里我们使用 Comparator 将文件修改时间与同一文件夹中的其他文件进行比较

方法

  1. 将所有文件放在一个名为File[] 的数组中。
  2. 使用比较器按最后一个修改日期/时间的递增顺序对基于数组的所有文件进行排序。
  3. 返回数组的第一个索引,该索引将返回文件夹的修改日期/时间。

Java

package com.BotArmy;
  
// Java Program to Print the last
// modification time of a directory
import java.io.*;
import java.util.*;
class time {
    public static Date getLastModified(File directory)
    {
        // Accessing each file from a folder in File array:
        File[] files = directory.listFiles();
        if (files.length == 0)
            return new Date(directory.lastModified());
        // Sorting each file based on its lastModified
        // Time using the comparator
        Arrays.sort(files, new Comparator() {
            public int compare(File o1, File o2)
            {
                // returning the file modified time
                // in the increasing way
                return Long.valueOf(o2.lastModified())
                        .compareTo(
                                o1.lastModified()); // latest 1st
            }
        });
        return new Date(files[0].lastModified());
    }
}
class Main {
    public static void main(String[] args)
    {
        // taking the file directory location
        File directory = new File(
                "/home/mayur/");
        Date myDate = time.getLastModified(directory);
        System.out.println("date: " + myDate);
    }
}