一部のデータのバックアップを保存しようとしています。バックアップが存在する場合は、それを削除し、最新のファイルにバックアップ ファイルの名前を付けてから、新しいファイルを最新のファイルとして保存します。
私が直面している問題は、既存のファイルを削除しても、別のファイルを同じ名前で保存できないことです。システムはまだファイルが存在すると考えており、実際には、プログラムが例外をスローした時点でファイルは削除されていません。私が考えることができる唯一のことは、移動操作が実行されるまでに「削除」操作が完了する時間がないということです。しかし、私はそれを修正する方法がわかりません。
コードは次のようになります。
File.Delete(filePath.Substring(filePath.Length - 4) + ".bak");
File.Move(filePath, filePath.Substring(0, filePath.Length - 4) + ".bak");
後で移動機能を実行するためにタイマーを設定することも考えましたが、これはおそらく非常にずさんで危険な問題の処理方法になると思われます。さらに、待機する必要がある時間は、システムによって異なる場合があります。だからもっと良い方法があるに違いないと思っています。