こんにちは。明月です。
今日はFile扱うIOとContextメニューを利用してバックアッププログラムを作成します。
開発概要
我々がWindowOSでドキュメント作業、各種業務するときに急いで処理することによって、デスクトップ等にデータを移すことあるいは作成しておくことにすることでパソコンのファイル整理状況が悪くなる場合があります。(たまに仕事しながらデスクトップ画面にドキュメントでいっぱいになったことをみたことあります。その状況で仕事をすることが不思議だと思いました。)
そのたびにディレクトリを整理するしバックアップしてから仕事しますね。その時に筆者はファイル整理とファイルバックアップをマウスクリックの一つで整理をできれば、いいじゃないかだと思い出してプロジェクトを企画しました。
システム概要
プログラム開発言語は「C#」で開発します。
実行する方法はコンソールタイプで開発しますがExplorerのContextメニューに登録してメニューからクリックさせたらファイルやディレクトリを特定にバックアップパスにコピーあるいは移動します。
要件定義
Input |
システム |
Output |
説明 |
Iniファイル |
Iniの環境ファイル読み込むモジュール |
- |
バックアップするパスとコピーかファイル移動かの区分する設定値がある環境ファイルを読み込むモジュール |
- |
レジストリ管理モジュール |
ファイルやディレクトリのContextメニューにBackup追加 |
レジストリのContextメニューを修正および登録するモジュール |
バックアップする対象のファイルやディレクトリ |
ファイルシステム |
環境ファイルで設定されたバックアップパスにファイルをコピーあるいは移動 |
IOを利用してファイル移動およびコピー |
実装
バックアッププログラムで特定パラメタを入力するとレジストリ及び環境ファイルを生成するクラスです。
実際に本システムのメインクラスになりますが、環境ファイルからバックアップするパスを取得し、コンテクストメニューあるいはコンソールからバックアップするファイルかディレクトリのパスを受け取ってコピーまたは移動させるクラスです。
本システムのディレクト区切り文字、実行するパス、重要なドライブなどを取得するクラスです。
スタートポイントになるクラスですが、パラメタ検証、デバック処理などが実行されています。
VisualStuioに上のソースを実装してそのままにデバックすると下記のイメージの結果が表示されます。
環境設定
実行
ここまでがコンテクストメニューを経由するバックアップするシステムを開発から運用までの説明です。
Githubリンク - Contextメニューバックアップソース
zipファイルリンク - Contextメニューバックアップソース(zip)
前の投稿で勉強したファイルシステム(IO)から簡単なバックアップシステムを作成してみました。ファイルシステム(IO)を勉強する時にはIOだけでは何もできなさそうだったと思いましたが、コンテクストメニューを利用してIOだけでもバックアップシステムを作ることができます。
もちろん、市販プログラムと比べると性能の差があると思いますが、バックアップ機能だけでも十分に楽なプログラムを開発することができるというのがよいと思います。
一つの投稿で簡単に作成したプログラムなのでバグが結構多いと思いますが、このプログラムからもっと発展させてもっといいプログラムを作る方がいらっしゃればこのソースを遠慮なく利用してください。
筆者ももっと良いアイデアがあれば、本ブログを通って開発しながら投稿します。
0 件のコメント