我有一个安装在我的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可能返回失败的情况?
请帮帮我,我真的是把我的头发拉了!! :(
最佳答案
我在Unix文件系统上有类似的问题。在我的情况下,这是因为unix截断了最后修改的毫秒数并将最后修改的值设置为:
System.currentTimeMillis()-System.currentTimeMillis()%1000
它正在影响一个测试用例,该用例正在处理文件,然后通过file.lastModified()检查更新。我只是在测试用例中更新文件之前添加了Thread.sleep(1100),所有问题都得到解决。
希望对下一个人有帮助。