0

ユーザーがファイルを変更して保存したときにいつでも元に戻せるように、ファイルがプログラムで開かれているときにファイルのバックアップを作成する最も効率的な方法は何ですか?

例:

    private void open_click(object sender, EventArgs e)
    {
        ofd.DefaultExt = "";
        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            fileIn = ofd.FileName;
            fileOut = Path.GetTempFileName();
            string encoded = File.ReadAllText(fileIn);
    etc. etc. etc
}

プログラムに読み込まれるファイルは、backup_01 としてバックアップし、元のファイルと同じフォルダーに配置する必要があります。backup_01 が存在する場合は、backup_02 としてバックアップするなど)。

例は大歓迎です!

4

1 に答える 1

0

私は通常、ファイル自体のコピーを作成し、それを「バックアップ」フォルダーに配置し、そのファイルの古さを示すために何らかの命名スキームを適用します。

例: folder/originalFile.xyz==>folder/backup/originalFile_2013-04-14-12-48.bak

更新/後付け: これの効率は、コピー操作を実行する OS に依存すると思いますが、一般的にはそれほど悪くはありません。そうする正当な理由がない限り、より効率的に行うために余分なロジックを追加しようとすることは避けます。

コメントに応じて更新:

ここでは詳細な実装については説明しませんが、正しい方向を示すようにします。 System.IO.File、具体的にはメソッドCopyExists. (この他の一般的な IO-taks のリストも役立つ場合があります)

これらを使用すると、ファイルが存在するかどうか (たとえばbackup_1.xyz、バックアップ フォルダーに " " が既に存在するかどうか) を確認し、それに基づいて次のバックアップ ファイルの新しい名前を生成できます。

1「空き」ファイル名が見つかるまで数字を増やして置き換えるループを作成し、元のファイルをその名前の新しいファイルにコピーします。

幸運を!:)

于 2013-04-24T10:47:37.383 に答える