Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

ZipArchive Frameworkを使ってパスワード付きZipアーカイブを作成

Posted on 9月 30, 2018 by Takaaki Naganoya

オープンソースのSSZipArchiveを呼び出して、パスワード付きZipアーカイブを作成するAppleScriptです。

AppleScriptそのものにZipアーカイブの操作機能はないので、この手の操作は他のプログラムを操作することになります。

–> Download ZipArchive.framework (To ~/Library/Frameworks)

(1)Unix shellのzipコマンド
do shell scriptコマンド経由でUnix shellのzipコマンドを呼び出す方法です。データをファイルで扱っている場合にはよいのですが、そうでない場合には困ります(変数に入れたデータを圧縮したいとか)。以前に、なろう小説APIを呼び出したときに、GZIP.frameworkを用いて変数内のデータをZip展開しましたが、こういう用途には使えません。

(2)アーカイブユーティリティを呼び出す
/System/Library/CoreServices/Applications/Archive Utility.appを呼び出す方法です。Mac OS X 10.5までは「BOMArchiveHelper」という名前でした。その他、AppleScriptに対応しているZipアーカイバがあればそれを使ってみてもよいでしょう。これも、(1)同様にファイル単位で操作するものが普通なので、使える用途と使えない用途があります。

(3)各種Cocoa Frameworkを呼び出す
Objective-CのZipアーカイブ操作プログラムを見つけ、Frameworkになっていなくても、無理やりXcode上でCocoa Frameworkを作成し、必要なファイルをそこに突っ込んでFramework化して使っています。

今回使うのはSSZipArchiveです。

いろいろなZip操作のObjective-Cのプログラムをダウンロードしては分析してみると、各プログラムで作者の好みが色濃く反映されており、どれか1つで済むとは思えない状況です。

また、必要なメソッドの呼び出しにBlocks構文による記述が必要な場合にはAppleScriptから呼べません(さらにそのメソッドを呼び出すためのメソッドをObjective-C上で定義するとか、回避方法はいろいろありそうです)。

結局、いろいろGithub上で探してはビルドして試しています。

AppleScript名:ZipArchive Frameworkを使ってパスワード付きZipアーカイブを作成(ファイル指定).scptd
— Created 2018-09-28 by Takaaki Naganoya
— 2018 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "ZipArchive" –https://github.com/ZipArchive/ZipArchive

set aPassWord to "yourpassword"
set targFile to POSIX path of (choose file with prompt "Select a file to Zip")
set archiveTarg to targFile & ".zip"

set zipRes to current application’s SSZipArchive’s createZipFileAtPath:(archiveTarg) withFilesAtPaths:{targFile} withPassword:(aPassWord)
return zipRes as boolean

★Click Here to Open This Script 

More from my site

  • Excel__Numbersセルアドレスの相互変換Excel__Numbersセルアドレスの相互変換
  • Wikipedia経由で2つの単語の共通要素を計算するcommon elements Lib Script LibraryWikipedia経由で2つの単語の共通要素を計算するcommon elements Lib Script Library
  • 画面上の指定座標にマウスカーソルを強制移動させてクリック画面上の指定座標にマウスカーソルを強制移動させてクリック
  • checkboxLibをアップデート(3)sdefにサンプルドキュメントを入れるcheckboxLibをアップデート(3)sdefにサンプルドキュメントを入れる
  • checkboxLibをアップデートcheckboxLibをアップデート
  • アイテム番号リストをもとに、ヒットしなかった項目を返すアイテム番号リストをもとに、ヒットしなかった項目を返す
(Visited 330 times, 1 visits today)
Posted in file | Tagged 10.11savvy 10.12savvy 10.13savvy | 7 Comments

7 thoughts on “<span>ZipArchive Frameworkを使ってパスワード付きZipアーカイブを作成</span>”

  1. 10/3/18
    6:37 PM
    2018年10月3日
    6:37 PM

    Reply

    Manabu Yajima says:

    初めまして、こんにちは。
    こちらのスクリプトを活用させていただこうかと思ったのですが、
    macOS Mojave 10.14上で実行しようとすると、以下のエラーが出て実行できません。
    何か原因は考えられますでしょうか?

    error “バンドル“ZipArchive”を読み込めませんでした。” number -4960 from framework “ZipArchive”

    • 10/4/18
      9:24 AM
      2018年10月4日
      9:24 AM

      Reply

      Takaaki Naganoya says:

      はじめまして。記事からダウンロードできるようにしてある「ZipArchive.framework」は、~/Library/Frameworksフォルダにインストールしてあるでしょうか?
      Zipファイルのまま入れてあるとか、デフォルトで存在していない「Frameworks」フォルダを手動で作成するときにスペルを間違えたとかいうことはないでしょうか?

      10.14は(10.13の出来がひどすぎて)まだ入れる気になれなくて、、、(^ー^;;

  2. 10/4/18
    10:32 AM
    2018年10月4日
    10:32 AM

    Reply

    Takaaki Naganoya says:

    あー、Frameworkが見つからない場合のエラーは「framework “ZipArchive”を取り出すことはできません。」なので、この場合には該当しないんですね。

    もしも、YajimaさんがXcodeの最新版をお手元のMacにインストールしているようであれば、10.14環境上でhttps://github.com/ZipArchive/ZipArchiveをビルドして試してみてはいかがでしょうか? ZipArchiveは最初からFrameworkをビルドするようにできているので、Githubからプロジェクトをダウンロードしてビルドする程度の操作でFrameworkのバイナリを取得できます。

    現時点ではそのぐらいでしょうか?

    • 10/4/18
      6:47 PM
      2018年10月4日
      6:47 PM

      Reply

      Manabu Yajima says:

      ご返信ありがとうございます。
      今のところ大きな不具合はないですが、10.14にするのは控えた方がいいかもしれませんね..
      ところで本題ですが、スクリプトをアプリケーション形式で保存したら動作しました。
      詳細は不明で、少し不便ですがこの方法でやるしかないですかね..
      ビルドも試してみましたが、読み込みせず..

  3. 10/5/18
    12:23 AM
    2018年10月5日
    12:23 AM

    Reply

    Takaaki Naganoya says:

    ためしに、ScriptDebugger 7(のお試し版)でためしてみていただけないでしょうか?
    https://latenightsw.com

    OS標準のスクリプトエディタでは読まないFrameworkでも、ScriptDebuggerだと問題なく読んだというケースがごく少数確認されています(macOS 10.12上で)。

    • 10/5/18
      1:01 PM
      2018年10月5日
      1:01 PM

      Reply

      Manabu Yajima says:

      こんにちは。
      使用頻度は低いですが、実はScript Debugger 7持ってます。
      Script Debugger 7上では動作しているようですよ。

  4. 10/9/18
    8:04 PM
    2018年10月9日
    8:04 PM

    Reply

    Takaaki Naganoya says:

    https://latenightsw.com/mojave-brings-in-big-security-changes/

    Shane Stanleyによれば、これはスクリプトエディタの「仕様」のようです。自分でもMojaveの環境を用意して試してみましたが、同様でした。

    フレームワークをフォルダに入れて呼ぶのではなく、スクリプトのバンドルの中に入れろということのようです。Script Bundleの中に入れるとか、AppleScript Librariesの中に入れるとか。

Leave a Reply to Manabu Yajima Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 15, Sequoia
  • 指定のWordファイルをPDFに書き出す
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • Numbersで選択範囲のセルの前後の空白を削除
  • メキシカンハットの描画
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • AppleScriptによる並列処理
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • AppleScript入門③AppleScriptを使った「自動化」とは?
  • Keynote/Pagesで選択中の表カラムの幅を均等割
  • Keynote、Pages、Numbers Ver.14.0が登場
  • デフォルトインストールされたフォント名を取得するAppleScript
  • macOS 15 リモートApple Eventsにバグ?
  • AppleScript入門① AppleScriptってなんだろう?
  • Numbersで最前面の書類のすべてのシート上の表の行数を合計
  • macOS 14で変更になったOSバージョン取得APIの返り値

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (194) 14.0savvy (147) 15.0savvy (130) CotEditor (66) Finder (51) iTunes (19) Keynote (117) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (55) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC