SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
previous arrowprevious arrow
next arrownext arrow
 
Shadow
C#/VB.net

C#.netでzip圧縮をする!

こんにちは。

少しフォルダ圧縮にチャレンジしてみました!

.net FrameWork 4.5になってからできるようになったらしいということで、

簡単にフォルダを圧縮するツールを作ってみました!

使った環境は以下です。
・Visual Studio 2015
・C#

実際に作ったファイルはこちらからダウンロードできます。

zip圧縮するための参照設定

 

参照設定は以下を追加が必要です。

・System.IO.Compression
・System.IO.Compression.FileSystem.dll

こんな感じですね。

zip圧縮のサンプルソース

 

まず、画面は以下のような作りで、

テキストボックスに入れた名前をzipファイル名にする仕様です。

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
ABOUT ME
LooseCarrot
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事