次のプロジェクトのアイデアとしてバックアップ ユーティリティを考えていますが、どこから始めればよいのか、どのようにバックアップを作成すればよいのかよくわかりません。
バックアップのアーカイブや復元などの方法について、誰でも光を当てることができますか。
ありがとう
まず第一に、.NET Framework で特にバックアップ/アーカイブ/復元アクティビティ用に設計された名前空間やクラスを見たことがないと思います。誰かが知っているなら、私たちに教えてください!
最も単純なファイルのバックアップは、ある場所から別の場所にファイルをコピーすることです。バックアップを維持したいソース コードがあり、それが日々少しずつ変化しているとします。ターゲット フォルダー内のすべてのファイルを外部ドライブに単純にコピーし、最後のコピー操作以降に変更されたファイルを上書きし、新しいファイルとフォルダーをコピー先に追加する小さなコンソール アプリを作成できます。次に、スケジュールされたタスクを使用して、コンピューターが使用されていないとき、または少なくともソースが編集されていないときに、1 日 1 回ユーティリティを実行します。
System.IO 名前空間には、これを比較的簡単に行うためのメソッドとクラスが多数あります。
IO 名前空間のいくつかの便利なクラスは次のとおりです。
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]);
}
AlphaVSSは、完全なVSS(ボリュームシャドウコピーサービス)APIを.NETコードに公開します。これにより、マネージコードを使用して特定の時点のスナップショットを作成できるようになります。
簡単な方法の1つは次のとおりです。
ファイルをコピーするだけの場合は、DirectoryInfo と FilesInfo を使用してディレクトリ、ファイルを取得し、FileCopy、FileMove などを実行できます。
宛先でファイルを圧縮する場合は、C# 用のコードもある 7z などの既存のライブラリを使用できます。
このウィキペディアの記事を読んでください-バックアップし、その中のすべてを理解していることを確認してください。
最も簡単なバックアップユーティリティは、ユーザーがソースフォルダーと宛先フォルダーを選択し、それをコピーすることを可能にすることです。(それがすべてのバックアップであるため、本質的に)。
ただし、フォルダ内の各フォルダをバックアップするには、再帰的なフォルダ呼び出しが必要になります。