【发布时间】:2016-03-18 18:56:04
【问题描述】:
我需要在 unix 机器上将文件从一个位置移动到另一个位置,我正在使用以下代码执行移动:
Path sourcePath = Paths.get(infaFileOut);
Path destinationPath = Paths.get(fileOut);
Files.move(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
一旦文件在目的地,我需要做一些额外的处理。我让代码休眠 10 秒,以便在处理开始之前,移动应该已经完成。有没有更好的方法来确保在其余代码运行之前移动成功?
【问题讨论】:
-
我不明白。在
Files.move之后,文件被正确移动或抛出异常。 -
有几种实现方式。您可以在移动操作后运行检查以检查新文件是否存在于新位置。如果所有文件都已正确移动,则仅将成功值返回给主进程。这样,在完成并验证成功之前,您不会开始第二部分的处理。