こんにちは。
少しフォルダ圧縮にチャレンジしてみました!
.net FrameWork 4.5になってからできるようになったらしいということで、
簡単にフォルダを圧縮するツールを作ってみました!
使った環境は以下です。
・Visual Studio 2015
・C#
実際に作ったファイルはこちらからダウンロードできます。
zip圧縮するための参照設定
参照設定は以下を追加が必要です。
・System.IO.Compression
・System.IO.Compression.FileSystem.dll
こんな感じですね。
zip圧縮のサンプルソース
まず、画面は以下のような作りで、
テキストボックスに入れた名前をzipファイル名にする仕様です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
private void buttonCompress_Click(object sender, EventArgs e) { string[] fileList; //圧縮ファイルのリストを取得 //FolderBrowserDialogクラスのインスタンスを作成 FolderBrowserDialog fbd = new FolderBrowserDialog(); //上部に表示する説明テキストを指定する fbd.Description = "フォルダを指定してください。"; //デフォルトでDesktop fbd.RootFolder = Environment.SpecialFolder.Desktop; //ダイアログを表示する if (fbd.ShowDialog(this) == DialogResult.OK) { //フォルダ内のファイル名をすべて取得 fileList = Directory.GetFiles(fbd.SelectedPath, "*", SearchOption.TopDirectoryOnly); //選択されたフォルダ内のファイルをすべて圧縮(zipファイルに格納) using (ZipArchive archive = ZipFile.Open(fbd.SelectedPath + @"\" + textBoxZipFileName.Text + ".zip", ZipArchiveMode.Update)) { //ファイル件数分ループ for (int i = 1; i < fileList.Count(); i++) { archive.CreateEntryFromFile(fileList[i], Path.GetFileName(fileList[i]), CompressionLevel.Optimal); } } } MessageBox.Show("圧縮が完了しました。"); } |
圧縮結果
圧縮してみると…
約500MBが1.3MBになりました!
圧縮前
圧縮後
Windowsの標準機能の「右クリック」→「送る」→「圧縮(zip形式)フォルダー)」
で圧縮すると約2.3MBになったので、こちらのほうが圧縮率がよいですね!
C#アプリ開発 メールお知らせアプリ
開発案件の経験は2案件ほどで、ほとんど経験ありません。
そんな私が独学でプログラミングの勉強をしてきました。
そこで...
おすすめのプログラミングスクール めざせ就職・年収アップ!
プログラミングを独学でされている人は意外と多いです。
ただ、プログラミングの独学は簡単にはいきません。
自分だけの力...
プログラミングの独学とはエラーとの闘い
プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。
私も最初はエラーが出るたびにいちいちビビッて、意味...
・フォルダの選択ダイアログを表示する
https://dobon.net/vb/dotnet/form/folderdialog.html
・ZipFile、ZipArchiveクラスを使用して、ZIP圧縮、展開(解凍)、リスト表示などを行う
https://dobon.net/vb/dotnet/file/zipfile.html
・YahooBox
https://yahoo.jp/box/AuKVqw
https://dobon.net/vb/dotnet/form/folderdialog.html
・ZipFile、ZipArchiveクラスを使用して、ZIP圧縮、展開(解凍)、リスト表示などを行う
https://dobon.net/vb/dotnet/file/zipfile.html
・YahooBox
https://yahoo.jp/box/AuKVqw