gpt4 book ai didi

java - 为什么在抛出 AccessDeniedException 时文件被 Files.move() 删除?

转载 作者:搜寻专家 更新时间:2023-11-01 03:46:22 26 4
gpt4 key购买 nike

这只是一个概念性问题。我正在使用 Files.move()StandardCopyOption.ATOMIC_MOVE 选项。我认为那样会更安全,但结果是当抛出 AccessDeniedException 时文件仍然被删除。

感谢任何解决方法或解释。

代码很简单:

Files.move(netDirJobs.toPath(), archiveJobs.toPath(),StandardCopyOption.ATOMIC_MOVE);

操作系统:win7 Professional SP1

@MarkJeronimus:

netDirLog.toPath().getFileSystem().provider()  = sun.nio.fs.WindowsFileSystemProvider@5dac9e07
archiveLog.toPath().getFileSystem().provider() = sun.nio.fs.WindowsFileSystemProvider@5dac9e07

跳转同一个对象

最佳答案

大家好,感谢您的努力。

首先是一些附加信息: 我将数据移动两次,第一次从源移动到临时位置,然后移动到最终目的地。

错误信息误导我以为是Files.move()的问题。但真正发生的是它将文件正确地移动到临时目录,然后当然因为只是临时目录而被删除。我删除了临时目录的退出时删除命令,现在如果从临时目录移动到目标失败,它仍按我的预期保存在临时目录中。

抱歉提出不必要的问题。

特别感谢 Mark Jeronimus 在 4 天过去后仍继续调查。

关于java - 为什么在抛出 AccessDeniedException 时文件被 Files.move() 删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com