-2

名前を変更する必要があります:

newfolder -> oldfolder;

例外が発生した場合、古いフォルダーが保存されることを確認する必要があります。

だから私は次のことを考えています:

 1. rename oldfolder -> tempfolder.
 2. rename newfolder -> oldfolder.
 3. If previous ok - delete oldfolder.

しかし、私は疑わしいです-Apache FileUtilsが同じことをするかもしれません。または、リネームの操作は安全です。何が正しいですか?ありがとう。

4

2 に答える 2

1

答えは、使用しているファイル システムによって異なります。ソース コードを見ると、File.io.renameto() はプラットフォームに依存し、ネイティブの O/S 呼び出しに委任されます。私の知る限り、すべての O/S の名前変更は安全であると考えられています。新しい宛先の新しい INODE/ポインターが更新された後、「削除」(通常は INODE ポインターを削除するだけ) を実行します。renameTo() が成功するとは想定できませんが (常に戻りコードを確認してください)、失敗した場合でも元のディレクトリはそのままであると確実に想定できます。

于 2012-06-23T17:22:08.310 に答える