java - 如何在unix中的java中查找某个时间范围内正在写入的文件

标签 java unix

我在一个目录中有几个文件,我想找到在某个时间范围内写入的文件。 据我所知,在 Linux 中不可能获取文件的创建时间。

我可以根据上次修改时间对文件进行排序,有没有更简单的方法可以做到这一点?

最佳答案

如果你的意思是隐式的java解决方案:

在Java中,您可以使用File.lastModified()来获取文件的最后修改时间戳。此方法将返回以毫秒为单位的时间(长值,从纪元时间开始),您可以将其格式化为 SimpleDateFormat使其成为人类可读的格式。

所以你需要做的就是这样:

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        if(listOfFiles[i].lastModified() > FROM && listOfFiles[i].lastModified() < TO){
                doSomething();
        }
    }
}

注意:FROM,TO 是 long 类型,代表时间戳。

关于java - 如何在unix中的java中查找某个时间范围内正在写入的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45305141/

相关文章:

unix - 在sed中使用正则表达式时跳过前n行?

c - 如何避免 C 容器服务器的用户定义库程序中出现 "exit"?

unix - 如何将 tar 中的单个文件提取到不同的目录?

linux - Linux 中不支持的协议(protocol)错误

bash - 为什么 bc 不显示该表达式结果的比例?

java - 是否有适用于 Apache Beam 的 Https IO 连接器?

java - 如何清除 `TargetDatatLine`读缓冲区

java - 尝试将我的 main/java 类文件编译为 .jar,然后也生成 .war

java - 如何使一个枚举项包含另一个枚举项?

java - Beta 程序站点分离