ソースコードはこちら
https://github.com/mi3w2a1/incremental-backup

これまではすべてのファイルをバックアップしていましたが、今回は拡張子を指定してそのファイルはバックアップ対象から外す設定ができるようにします。またリストアイテムの項目にメモ欄をつけてなにをバックアップしているのかをわかりやすくしました。

まず設定できる項目が増えたのでBackupFolderInfoクラスのメンバーを増やします(string[] Extensions と string Memo)。

実際にバックアップ対象から外す設定ができるようにします。

バックアップの設定を変更したらリストビューコントロールと設定ファイルに反映されるようにしています。

実際にバックアップをするときに特定の拡張子をもつファイルはバックアップの調査対象から外します。またアクセス拒否をされた場合はスキップして処理を続けることができるようにしています。

GetSelectedItemIndex()はリストビューコントロールで上から何番目のアイテムが選択されているかを取得します(一番上は0番目)。

GetSourceFolderPath()メソッドはバックアップ元のフォルダパスを取得します。

GetTargetFolderPath()メソッドはバックアップ先のフォルダパスを取得します。

GetExtensions()メソッドはバックアップの対象外にされている拡張子(「.」は含めない)を取得します。

GetSourceFilePaths()メソッドはバックアップ元のフォルダ内にあるファイルパスを取得します。指定された拡張子は対象から外します。

GetSourceFolderPaths()メソッドはバックアップ元のフォルダ内にあるフォルダのパスを取得します。指定された拡張子は対象から外します。

実際にバックアップを行なうメソッドです。バックアップ元のフォルダ内にあるフォルダとファイルを取得する処理だけが変更されています。