gpt4 book ai didi

Java watcher - 如何知道文件是否已完全创建

转载 作者:行者123 更新时间:2023-11-30 11:11:38 27 4
gpt4 key购买 nike

您好,我实现了一个 java 文件观察器,它在创建文件时读取文件。

它在开发机器上运行良好。我创建了一些文件并通过日志调用了 ENTRY_CREATE,我的程序按预期读取了这些文件。不调用 ENTRY_MODIFY。

但在生产机器上它的行为不同。许多文件被写入目录,当调用 ENTRY_CREATE 时,我的程序无法正确读取文件。我注意到有一些 ENTRY_MODIFY。

如何判断文件是否已完成,以便我的程序可以正确读取文件。来自 this article ,它提到文件在调用上次修改时完成。但我怎么知道?有时 ENTRY_MODIFY 不会被调用。

最佳答案

我决定检查文件的最后修改时间。如果它停止更改,我将继续处理该文件。我正在监控日志,如果一切顺利,我将使用此方法。

// Check if file is done created by checking change in date modified
File file = new File("...../filepath");
long tmpFileLastModified = 0;
int counter = 0;
while (true) {
long fileLastModified = file.lastModified();

if (fileLastModified != tmpFileLastModified) {
tmpFileLastModified = fileLastModified;

try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
msLogger.debug("fileModifiedCallback: File done modified");
break;
}

counter++;
}

// do something with the file

关于Java watcher - 如何知道文件是否已完全创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27333994/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com