我使用java来解析来自FTP协议的XML文件。问题是,我拍摄的文件可能被FTP复制/修改。所以我需要一个可以检查文件是否完全写入的方法。
我已经尝试使用File::canWrite
方法(它完全可以工作)或查找XML文件的结束标记,但在任何情况下都没有正常工作。 File::renameTo
非常缓慢,虽然有效但并不是很好看(并非所有情况都是如此)。如果文件被完全复制,是否有任何好的和快速的方法来检查?
非常感谢!
答案 0 :(得分:0)
简短的回答没有。最佳做法是使用临时名称写入文件,例如somefile.part
,并在完成后重命名。写作程序需要这样做。当您不控制编写应用程序时,解决方法是检查修改时间并确保自最近的更改以来已经过了一些合理的时间。也许一分钟。然后你假设文件已经完成。