Preview.appでオープン中の画像のファイルパスをすべてPOSIX pathで求めるAppleScriptです。
▲大昔にあった「日本語AppleScript」(Japanese Dialect)を擬似的に書いたRTFを画像化したもの。AppleScriptがいまでも日本語で書けるとかいうデモではありません(大事なことなので書いておきました)
Preview.appでオープン中の画像のパスをためしに求めてみたところ(macOS 10.12.6)、実際のファイルが、
/Users/me/Desktop/image.png
であるものが、
/Users/me/Library/Containers/com.apple.Preview/Data/Desktop/image.png
と返ってきました。一時的に、ライブラリフォルダの下にコピーしてオープンしているのでしょうか。そういう「舞台裏」をそのまま見せてしまうのはどうかと思います。オリジナルのファイルパスをそのまま返せばいいのに。
そこで、Preview.appから返ってきたパスを加工してオリジナルのパスを求めてみました。
ファイルサーバー上にある画像や外部HDD上にある画像などについては検証していないので、それについては、別途パスを求め直す必要があることでしょう。
macOS 10.13.5beta上でためしてみたら、こちらでは直っていました。そーーですよねーーーーー、10.12上の仕様の方がおかしいですよねーーー(ーー;;
AppleScript名:Previewでオープン中のファイルのパスを求める |
— Created 2018-05-21 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" tell application "Preview" set dList to path of every document –> {"/Users/me/Library/Containers/com.apple.Preview/Data/Desktop/スクリーンショット 2018-02-28 14.01.09.png", "/Users/me/Library/Containers/com.apple.Preview/Data/Desktop/スクリーンショット 2018-02-28 14.01.11.png"} end tell set mePath to POSIX path of (path to home folder) set origStr to mePath & "Library/Containers/com.apple.Preview/Data" set outPathList to {} repeat with i in dList set j to contents of i set the end of outPathList to repChar(j, origStr, (text 1 thru -2 of mePath)) of me end repeat return outPathList on repChar(origText as string, targStr as string, repStr as string) set {txdl, AppleScript’s text item delimiters} to {AppleScript’s text item delimiters, targStr} set temp to text items of origText set AppleScript’s text item delimiters to repStr set res to temp as text set AppleScript’s text item delimiters to txdl return res end repChar |
More from my site
(Visited 82 times, 1 visits today)