问题描述
|
这个问题已经在这里有了答案:
解决方法
重命名操作可能是原子的,也可能不是原子的,它可能成功也可能不会成功
目标名称下是否已存在文件或目录。在Unix上,两个单独的操作
必须执行。首先,必须测试目标名称下是否存在文件。然后,如果不存在这样的文件,则可以继续进行操作,并将源文件重命名为目标名称。在这两个操作之间,可能会在目标名称下创建一个新文件,并且由于rename()系统调用是原子的,并且会破坏目标,因此将删除该新文件。
,没有。
至少因为VM可能恰好在它离开代码后(在您输入File.rename()之后)以及File.rename()代码开始运行之前被杀死。