AccessDeniedExceptionがスローされたときに、なぜFiles.move()で削除されたファイルはありますか?

悪:

これは単なる概念質問として意味しています。私が使用していFiles.move()StandardCopyOption.ATOMIC_MOVEオプション。私はそれがより安全だろうと思ったが、AccessDeniedExceptionがスローされたときに、まだ削除されたファイルを判明しました。

どれでも周りの仕事や説明が理解されます。

コードは非常に簡単です:

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

OS:Win7のプロフェッショナルSP1

@MarkJeronimus:

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

JUP同じオブジェクト

悪:

みんなの努力に感謝しねえ。

まず、いくつかの追加情報:私は最終的な宛先に、一時に元から最初に、データを2回移動しています。

エラーメッセージは)それがFiles.moveの問題(だったと思うし、私を誤解しました。しかし、本当に起こることは、それはそれから、もちろん、単に一時的なもののために削除された一時ディレクトリにファイルを正しく移動したことでした。私は、一時ディレクトリのexitコマンドで削除を取り出して、目的地への一時ディレクトリからの移行が失敗した場合、私が意図したように、今それはまだ一時的に保存されます。

不要な質問申し訳ありません。

さらには、4日後に探しのためのマークJeronimusに特別な感謝が過去持っています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=195735&siteId=1