我编写了一个小应用程序,用于归档来自一组气象站的历史数据。我的程序执行以下操作:
检查输入文件是否存在
检查输入文件是否被另一个程序打开(可能是应用程序从气象站发送数据)。
将所有内容附加到存档文件。
删除输入文件(下次从气象站收到新数据时将再次创建)。
Java程序在Windows计算机上运行,并且如果访问本地文件,则所有程序运行都将顺利进行(我可以检查文件是否存在以及是否正在使用中)。但是,当我们开始使用映射到Windows机器上的Linux驱动器时,我开始在exist-check上出现假阴性,而在使用中检查上出现假阳性。
关于我可以做些什么的任何想法?
这是我的代码:
File originalFile = new File (currentPath + "\\" + line[1]);
if (originalFile.exists()) {
boolean fileIsNotLocked = originalFile.renameTo(originalFile);
if (fileIsNotLocked) {
/* WORK WITH THE FILE TO COPY ITS CONTENTS ETC */
if(originalFile.delete())
System.out.println("Successfully deleted file at = " + originalFile);
else
System.out.println("Could not delete file at = " + originalFile);
}
}
最佳答案
作为记录,该解决方案使用了JCIFS库:https://jcifs.samba.org/