バックエンド

Macでパスワード付きZIPファイルを作成!圧縮・解凍できない問題を解決!

mac-command-zip-password

こんばんは!光です。

大手グローバル企業でWebエンジニアをやっています。

Webエンジニアを目指してプログラミングを勉強している初心者の方向けに情報を発信しています。

経歴や実績はこちら

システム開発のお仕事の依頼もお待ちしております。

お問い合わせページTwitterのDMからお気軽にお問い合わせください!

今回はこのような質問をいただきました。

圧縮はできるけどパスワードを入れても解凍できない…しかもパスワードを設定しようとするとwarningが出る!

Finderで圧縮してからzipcloakコマンドでパスワードを設定してみたのですが、うまくできなかったのでまとめておきます。

圧縮はできるけどパスワードを入れても解凍できないんですよね。

macOSがCatalinaになったからかな…?

そこで今回はこちらの質問について解説していきます!

環境
  • macOS Catalina バージョン10.15(19A602)

Finderで圧縮→zipcloakだとうまくいかない

よく紹介されているのがzipcloakコマンドを使ったやり方。

Finderを使ってファイルを圧縮して、そのファイルに対してzipcloakコマンドを使ってパスワードを付与します。

こちらの方法でやってみると次のようなwarningが出てしまい、うまく解凍できませんでした。

XXXXXXはファイル名です。

encrypting: XXXXXX
zipcloak warning: Local Entry CRC does not match CD: XXXXXX
encrypting: __MACOSX/._XXXXXX
zipcloak warning: Local Entry CRC does not match CD: __MACOSX/._XXXXXX

他にもWinArchiver Liteを使う方法も紹介されているけどパスワードは数字4ケタしか設定できないっぽい。

ということで別の方法で圧縮することにしました。

解決:zipコマンドでファイルを圧縮する!

Finderで圧縮してからパスワードを付与する方法が一般的ですが、今回は圧縮するときにパスワードを付与します。

zipコマンドを使ってこんな感じに行います。

$ zip -e [圧縮後のファイル名] [圧縮するファイル名]
Enter password: 設定するパスワード
Verify password: パスワードを再入力

実際に使うとこんな感じ。

$ zip -e sample.zip sample.csv

zip -erとすることでディレクトリを圧縮することも可能です。

$ zip -er [圧縮後のファイル名] [圧縮するディレクトリ名]
Enter password: 設定するパスワード
Verify password: パスワードを再入力

使い方は同じです。

$ zip -er sample.zip sample

このように圧縮と同時にパスワードを設定することで正常に解凍できるようになりました。

念の為、別のPCでも解凍できるか確認したほうが良いと思います。

あとがき

macOS Catalinaでパスワード付きのZIPファイルを作成する方法を簡単にまとめてみました。

「Catalinaにしたらうまく圧縮できない…」という声をしばしば耳にするのでCatalinaが悪さしてそうですね。

うまく圧縮、解凍できない場合はこちらの方法も試してみると良いと思います。

Finderを使うとダメっぽいので、コマンドだけで作成したほうが良いと思います!