我在我的一台Solaris服务器上安装了NFS共享。路径 / appdata / anp 从服务器A挂载到服务器B.在共享下:
/appdata/anp
我有一个名为
的文件夹 /appdata/anp/factory
在上面的目录中,我将具有需要导入/更新的数据的文件放在数据库中。在数据库中导入数据后,我根据导入数据的运算结果将文件移动到成功/失败目录。
/appdata/anp/factory/success
/appdata/anp/factory/failure
我将文件移动到上述任一目录,并使用以下命令将文件的上次修改时间更新为当前系统时间:
file.setLastModified
返回一个布尔值。问题是每当我进行此更新操作时,它无法将该文件的时间戳更新为当前系统时间。
有谁知道
的场景是什么 file.setLastModified
返回失败。我甚至检查了NFS权限,一切似乎都没问题。反正知道 setLastModified 可能导致失败的情况吗?
请帮帮我,我真的在拉这个! :(
答案 0 :(得分:1)
我在Unix文件系统上遇到过类似的问题。在我的情况下,这是因为unix截断了最后修改的毫秒并将最后修改的设置为:
System.currentTimeMillis() - System.currentTimeMillis()%1000
它影响了一个测试用例,它正在操作一个文件,然后通过file.lastModified()检查更新。我只是在我的测试用例中更新文件之前添加了Thread.sleep(1100)并且所有文件都已解决。
希望能帮助下一个人。