タイトル通りです。
実は以前にこういう記事を書きました。
何でまたハッシュとか思われそうですが、C#とアプリ開発の勉強もあるのですが、ときどき使用することがあるので、いちいちコマンドラインで出さなくても良いようにするためです。
公開してる場所
↓のGitHubに置いています。
まぁ、フリーソフトというかオープンソースです。
Git(GitHubも)の使い方、最初は全然分かりませんでしたが、徐々に使い慣れてきました。
git init
で新規作成して、
git config user.name
でユーザー名を登録して(メールアドレスも)、
git remote add origin ...
して、
git add
でファイル追加して、
git commit -m コメント
でコミットして、
git push ...
という流れでしょうか…。
(事前にGitHubのリポジトリ作成する必要あるけど)
除外したいファイルを事前に指定する方法が知りたいのですが、まだそこには至っていません。
機能
- 入力ソースは文字列・ファイル両方に対応
- 比較ができる(ダウンロードしたファイルのハッシュ値突合で使える)
- .NETで利用できる主要なハッシュ値には対応した(MD5, SHA1, SHA256, SHA386, SHA512)。
- 引数にファイルパスを指定可能(起動時にハッシュ値は自動で出力)。
- TextChangedイベントで、リアルタイムで出力する(いちいちボタンを押すのが面倒だから)
- ファイルはドラッグアンドドロップでも指定可能
基本的には.NET Coreの機能を使用してるだけのGUIラッパーだと思います。それを使いやすくしたものです(使いやすくできてるといいのだけど)。
開発にあたっての所感とか
イベントドリブンやっぱり面倒
コンソールアプリと違って、イベントドリブンだと処理のパターンが単純ではないので、中身のロジックをどうすればすっきりするか、結構悩みます。
まぁ、前職でもVB.NETで開発はしていましたが、どうしてもごちゃごちゃしてしまうのが難点(スキル不足かもしれませんが)。
ドラッグアンドドロップの実装も初めてしてみました
2つのイベントを使用して書かないといけないんですね…。何気にコードがごちゃごちゃします。
private void txtCharas_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void txtCharas_DragDrop(object sender, DragEventArgs e)
{
string[] dropdata = (string[])e.Data.GetData(DataFormats.FileDrop);
if (dropdata.Length > 0)
this.txtCharas.Text = dropdata[0];
}
あと、PBKDF2も入れようか迷いましたが、特にパスワード保管用のハッシュ値をわざわざ手作業で作る必要も今のところないので、これは省きました。あと、MD5やSHA256は継承元のクラスが同じですが、PBKDF2については違いますので、追加したら分岐がさらに増えます。
Windowアプリケーションの開発ってもっと楽にならないかなぁ……。WPFとかUWPも使ってはみたいのだけど、前者どうも普及しているかよく分からないし、後者もまだ様子見の段階。
すごく走り書きの記事になりましたが、どうぞ、温かい目で見て頂けると嬉しいです。