パスワード付き zip 圧縮ツールを nuget に公開しました

以前こんな記事を書きました。

neko3cs.hatenablog.com

このツール、理想としていた zip コマンドと少しインターフェースが違いました。

また、上記記事執筆時は画像の通り動いていたのですが、不具合が発生し動かなくなってしまいました。

このため、改修をおこない、ついでにすぐインストール出来るよう nuget.org に公開しました。

www.nuget.org

発生した不具合について

圧縮しても解凍出来ないファイルが出来上がるようになってしまいました。

記事執筆時では SharpZipLib という zip ライブラリを用いていました。

ですが調べた結果、SharpZipLib では macOS 上で上手く動かないので DotNetZip というライブラリを使うと良いことが以下記事から分かりました。

stackoverflow.com

なので、zip 圧縮処理を DotNetZip へ移行しました。

詳細なコードは以下にありますのでご興味ある方はご覧ください。

github.com

使い方

シンタックスは以下の通りです。

$ dnzip [options] <archiveFilePath> <sourceDirectoryPath>

現状、複数ファイル指定が出来ず、<sourceDirectoryPath> で指定したディレクトリ内のファイルを zip 圧縮するものとなっております。

オプションは以下の通りです。

オプション 機能
-r, --recursePaths 再起的に圧縮する。(指定しないとルートディレクトリのファイルのみ圧縮される)
-e, --encrypt 暗号化する。

追加予定機能

今のところ以下機能の追加を予定してます。

  • 複数のファイル、ディレクトリを指定出来る
  • 本家 zip コマンドの --no-dir-entries の機能

余裕が出来たら実装していきたいと思います。