developer's diary

最近はc#のエントリが多いです

C# (dotnetcore) ディレクトリを指定してZIPファイルを作成

System.IO.Compression を使います。

docs.microsoft.com

早速やっていきましょう。

テスト用のフォルダ・ファイルを作る

mkdirコマンドでディレクトリを作成

mkdir /tmp/test/日本語フォルダ
mkdir /tmp/test/日本語フォルダ/test
mkdir /tmp/test/日本語フォルダ/フォルダ

echo コマンドで出力した内容をリダイレクトでファイルに書き出す

echo "test" > /tmp/test/日本語フォルダ/test/test.txt
echo "テスト" > /tmp/test/日本語フォルダ/フォルダ/test.txt

f:id:mitsugi-bb:20200831002140p:plain
テストフォルダ

ディレクトリを指定してZIPファイルを作成

using System;

namespace ZipArchiveExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectoryName = @"/tmp/test/日本語フォルダ";
            string destinationArchiveFileName = @"/tmp/test/日本語フォルダ.zip";
            System.IO.Compression.ZipFile.CreateFromDirectory(sourceDirectoryName, destinationArchiveFileName);

        }
    }
}

実行結果

f:id:mitsugi-bb:20200831002313p:plain
実行結果

解凍すると、「日本語フォルダ 2」ができました。

f:id:mitsugi-bb:20200831002849p:plain
解凍結果

次回は解凍

mitsugeek.net