鳩でもわかるC#鳩でもわかるC#C#とJavaScriptをメインに情報発信をしています。増分バックアップTweetソースコードはこちらhttps://github.com/mi3w2a1/incremental-backup前回の続きです。バックアップ先からファイルを復元する処理を考えます。[バックアップ先から復元]をクリックすると以下のようなダイアログを表示されます。このなかからバックアップされた時刻と復元先フォルダを指定すると、バックアップ先からファイルとフォルダが復元されます。復元先フォルダは空のフォルダでなければなりません(復元先フォルダのなかに同名のファイルがあると処理が複雑になるので・・・)。[復元]ボタンがクリックされると適切な値が設定されているか調べます。「適切」であるとは、復元時刻が指定されていること、復元先フォルダのパスが指定されていること、復元先フォルダは実際に存在し、中身は空であること、これらすべての条件を満たしていることです。そのときはダイアログは閉じられて、ファイルの復元の処理がはじまります。ticks;this.Close();}}}[バックアップ先から復元]をクリックするとForm1クラスでは以下のメソッドが実行されます。targetFolder)メソッドはログが保存されているフォルダからログファイルのパスを取得し、そのファイル名から復元可能な時刻をリストに格納します。filePath)メソッドです。FormRestore.TicksListにセットします。そのあとShowDialog()メソッドを実行してダイアログを表示させます。ダイアログで適切な値が設定されていた場合([復元]ボタンがクリックされ、FormRestoreダイアログが正常に閉じられたときはFormRestore.RestoreTimeが0よりも大きな値になっている)は、ファイル復元の処理がおこなわれます。取得されたもののうち、FormRestore.RestoreTimeと同じものか、それよりも数値が小さいものを使います。FormRestore.RestoreTimeからバックアップしているフォルダパスを求め、そのフォルダのなかに復元しようとしているファイルがあるかどうか調べます。ticksList)メソッドは、指定された時刻からバックアップされているフォルダパスのリストを取得するためのメソッドです。backupFolderPaths;}}バックアップされているファイルが見つかった場合は復元先のフォルダにそのままコピーし、なければFormRestore.RestoreTimeに近い順にバックアップしているフォルダパスを求め、そこを探します。どこかでバックアップされているファイルとフォルダは見つかるはずなのですが、見つからない場合はエラーとなります。これはファイルとフォルダがバックアップされているフォルダパスのリストから実際にファイルとフォルダを復元するためのメソッドです。MessageBoxIcon.Error);}MessageBox.Show("復元完了");}}最後に[バックアップ先から復元]をクリックしたときにForm1クラスで呼び出されるメソッドを示します。GetSourceFolderPath());}form.Dispose();}}よろしければ記事の拡散をお願いします。C#でつくる増分バックアップアプリ(8)鳩でも分かるC#管理人からのお願いできる仕事であれば請け負います。鳩でもわかるC#管理人はクラウドワークスに在宅ワーカーとして登録しています。お仕事の依頼もお待ちしております。仕事を依頼するコメントについてコメントで英語などの外国語でコメントをされる方がいますが、管理人は日本語以外はわからないので基本的に内容が理解できず、承認することもありません。それからへんな薬を売っているサイトやリンク先のサイトが存在しないというスパムコメントも多々あります。comments.そんななか日本語のコメントもいただけるようになりました。「○○という変数はどこで宣言されているのか?」「××というメソッドはどこにあるのか」「例外が発生する」「いっそのことソース丸ごとくれ」という質問ですが、管理人としては嬉しく思います。「自分が書いた記事は読まれているんだな」と。疑問点には可能な限り答えます。記事に問題があれば修正いたします。そのうえでお願いがあります。「匿名」という味も素っ気もない名前ではなく、捨てハンでいいのでなにかハンドルネームをつくってほしいと思います。管理人のモチベーションアップのためによろしければご支援お願いします。C#で増分バックアップができるアプリケーション(2)」コメントをどうぞ返信をキャンセルする。2024年9月6日ブログやっています。メインはC#ですが、JavaScriptにも挑戦しています。ときどきPythonとPHPもあるかも。