変更 - java8 files




java内の別のファイルに名前を変更する (4)

私は既存のファイルの名前にリネームする必要があるファイルがあります。 これは、既存のJARファイルの元の操作をコピー、変更、置換することです。 私は最初の2つのステップを完了しました、私はちょうど置換元のビットで助けが必要です。 JARの新しいバージョンの名前を古いものに変更する最も良い方法は何ですか? 古いJARは保存する必要はありません。新しい名前のコピーを最初の名前で付けることは望ましくありません。

私はコモンズランとioを既に持っているので、もし私が逃した方法があれば、それは素晴らしいだろう。


2つのjava.io.Fileオブジェクトを作成する必要があります.1つは新しいファイル用、もう1つは古いファイル用です。

これらのoldFilenewFileます。

oldFile.delete()
newFile.renameTo(oldFile);

編集:mmyersそれに私を打つ。


Java.io.File.renameTo(java.io.File)

最初に元のファイルのFile.delete()最初に呼び出す必要があるかもしれません - いくつかのシステムはファイルを既存のファイルに名前変更しません。


ファイルシステムのファイルの名前を変更する方法や、この新しいバージョンのjarファイルを再読み込みするかどうかを尋ねているかどうかは完全にはわかりません。

名前を変更する部分は簡単に聞こえます... File.renameToを使用してください...残念ながら、これに関連する多くのプラットフォーム固有の問題があります。 一部のプラットフォームでは既存のファイルを上書きすることはできませんが、他のプラットフォームではファイルの名前を変更して場所を別のパーティションに変更することはできません。 プロセスを完全に安全にしたい場合は、まず古いファイルを削除してから新しいファイルの名前を変更するか、パーティションの変更が可能かどうかをコピーして、プロセスを自分で実行する必要があります。 これは、もはやアトミックな操作ではないため、アプリケーション/マシンがクラッシュしたときに問題になりがちです。 したがって、アプリケーション起動プロセスに、クラッシュが発生した途中の名前変更操作を検索するチェックを追加する必要があります。 このようにして1つのファイルを更新するだけの場合は、かなり簡単です。

しかし、実際にjarファイルをリロードする場合は、いくつかの問題がありますが、それを行う方法について適切なアドバイスを得るためには、状況をもう少し詳細に把握する必要があります。






file