2

次のプロジェクトのアイデアとしてバックアップ ユーティリティを考えていますが、どこから始めればよいのか、どのようにバックアップを作成すればよいのかよくわかりません。

バックアップのアーカイブや復元などの方法について、誰でも光を当てることができますか。

ありがとう

4

5 に答える 5

4

まず第一に、.NET Framework で特にバックアップ/アーカイブ/復元アクティビティ用に設計された名前空間やクラスを見たことがないと思います。誰かが知っているなら、私たちに教えてください!

最も単純なファイルのバックアップは、ある場所から別の場所にファイルをコピーすることです。バックアップを維持したいソース コードがあり、それが日々少しずつ変化しているとします。ターゲット フォルダー内のすべてのファイルを外部ドライブに単純にコピーし、最後のコピー操作以降に変更されたファイルを上書きし、新しいファイルとフォルダーをコピー先に追加する小さなコンソール アプリを作成できます。次に、スケジュールされたタスクを使用して、コンピューターが使用されていないとき、または少なくともソースが編集されていないときに、1 日 1 回ユーティリティを実行します。

System.IO 名前空間には、これを比較的簡単に行うためのメソッドとクラスが多数あります。

IO 名前空間のいくつかの便利なクラスは次のとおりです。

  • Directory は、ディレクトリとサブディレクトリを作成、移動、および列挙するための静的メソッドを提供します
  • DirectoryInfo は、フォルダ/ディレクトリのプロパティを公開するクラスです
  • File はファイルの静的メソッドを提供します
  • FileInfo は、ファイルのプロパティを公開するクラスです。

C: ドライブのルート直下にあるすべての最上位フォルダーの配列を提供するコード サンプルを次に示します。

string[] d = Directory.GetDirectories(@"C\", "*.*", SearchOption.TopDirectoryOnly);
DirectoryInfo[] di = new DirectoryInfo[d.Length];
for (int x = 0; x < d.Length; x++)
{
    di[x] = new DirectoryInfo(d[x]);
}
于 2010-08-25T17:12:15.960 に答える
2

AlphaVSSは、完全なVSS(ボリュームシャドウコピーサービス)APIを.NETコードに公開します。これにより、マネージコードを使用して特定の時点のスナップショットを作成できるようになります。

于 2011-07-11T05:08:59.727 に答える
2

簡単な方法の1つは次のとおりです。

  1. ユーザーがターゲット フォルダと宛先、および宛先タイプ (Zip、コピーなど) を選択できるようにする
  2. ターゲットフォルダー内のファイルとサブフォルダーを宛先にコピー/圧縮します

ファイルをコピーするだけの場合は、DirectoryInfo と FilesInfo を使用してディレクトリ、ファイルを取得し、FileCopy、FileMove などを実行できます。

宛先でファイルを圧縮する場合は、C# 用のコードもある 7z などの既存のライブラリを使用できます。

于 2010-08-25T17:10:19.213 に答える
1

このウィキペディアの記事を読んでください-バックアップし、その中のすべてを理解していることを確認してください。

最も簡単なバックアップユーティリティは、ユーザーがソースフォルダーと宛先フォルダーを選択し、それをコピーすることを可能にすることです。(それがすべてのバックアップであるため、本質的に)。

ただし、フォルダ内の各フォルダをバックアップするには、再帰的なフォルダ呼び出しが必要になります。

于 2010-08-25T16:59:42.933 に答える
1
  • セクタ単位またはファイル単位でバックアップする予定ですか?
  • バックアップは管理者 (すべてのファイルへのアクセス) またはユーザー (一部のファイルのみへのアクセス) として実行されますか?
  • 現在バックアップ ファイルに保存されている管理者レベルの情報をユーザー レベルの閲覧者から保護するにはどうすればよいですか?
  • ターゲット メディアには、バックアップ用の十分なスペース (大規模なネットワーク ドライブ) が必要ですか? それとも、バックアップが複数のメディアにまたがることができますか? (CDROM)
  • 後者の場合、単一のターゲット メディアよりも大きな個々のファイルをどのように処理しますか?
  • 常に完全バックアップ (常にすべて) を実行するか、増分 (最後のバックアップ以降の変更のみ) または差分 (最後の完全バックアップ以降の変更のみ) を実行しますか?
于 2010-08-25T16:58:48.650 に答える