環境: Mac OS X 10.4.8
まず、スクリプト実行の過程で
set theItem to paragraph 1 of (do shell script "find /Users/hoge/Desktop -iname \"*.jpg\"")
--> (結果) theItem = "/Users/hoge/Desktop/宮﨑あおい.jpg"
となっているとします。パス文字列に「立つ崎」の宮﨑あおいが含まれています。
この変数 theItem を alias に変換しようとして
(theItem as POSIX file) as alias
と書くと、 as POSIX file の時点でエラーになります。
「立つ崎」が原因のようです。しかしどういう条件の文字が問題になるのかはわかりませんでした。
「立つ崎」は OS X の文字パレットを見ると CJK 互換漢字というグループに属していますが、同じ CJK 互換漢字である「歷 (U+6B77)」 ではエラーになりません。(訂正: 「歷 (U+6B77)」はCJK 互換漢字ではなく CJK 統合漢字でした。CJK 互換漢字のなかに「歷 (U+F98C)」という文字があるのですが、Finder 上で項目名として確定したときに、強制的に「歷 (U+6B77)」になってしまうのです。同様に「塚 (U+FA10)」は「塚 (U+585A)」に、「晴 (U+FA12)」は「晴 (U+6674)」という具合に強制的に置き換えられ、Finder 上で項目名に使えない文字というのがあるようです。「立つ崎」はこれには該当せず、「Finder 上で勝手に置き換えられずそのまま表示される文字」が怪しい文字の一つ、という言い方はできるかもしれません。あまり当てにはなりませんが)
スクリプトエディタの結果パネルで「?」になる文字が怪しい、というわけにもいきません。「はしごだか」の「髙」は結果パネルでは「くちだか」の「高」としてかろうじて表示されますが、やはりパスの形式変換でエラーを起こします。かといって「結果パネルで ? や別の文字に化ける文字はエラー」と考えるのも適切ではなく、たとえば「红 (U+7EA2)」という文字は場合によって結果パネルで「∫EC」という文字列に化けますがパスの変換に支障はありません。
他にも「つちよし」の「𠮷」や「𣇵 (U+231F5)」「盌 (U+76CC)」など、エラーを引き起こす文字がいくつかありました。
「この文字とこの文字を項目名に使わなければよい」というわけにはいかないようです。
原因はともかく、次のように書くとうまくいきます。
(POSIX file theItem) as alias
--> (結果) alias "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"
alias ではなく POSIX file にしたいときは当然、as alias を書かなければよいわけですが...
POSIX file theItem
--> (結果) file "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"
同じことを Finder のtell ブロック内でやろうとするとエラーになります。
tell application "Finder"
POSIX file theItem
end tell
--> (結果) エラー
ところが Finder の tell ブロック内でも
(POSIX file theItem) as alias
や
(POSIX file theItem) as Unicode text
は使えるんですね。なんなんでしょ。
また別のケースで
set theItem to (choose file)
--> (結果) theItem = alias "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"
となっているとします。
これを POSIX path of ... で POSIX 形式のパスにすることは可能ですが
alias を直接 HFS パス (コロン区切り) のテキストに変換しようとすると
theItem as Unicode text
--> (結果) エラー
この場合も POSIX file を経由して
POSIX file (POSIX path of theItem) as Unicode text
で解決できます。
上記以外にもある形式から別の形式へ変換するときに同種のエラーが起きることがあります。
いくつかの解決法がありますが、POSIX file を経由するのがもっとも手っ取り早いようです。
- theItem が alias の場合
例. alias "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"- --> POSIX file
- POSIX file (POSIX path of theItem)
--Finder の tell ブロックの外に書く - --> POSIX パス文字列
- POSIX path of theItem
-- 通常と同じ - --> HFS パス文字列
- POSIX file (POSIX path of theItem) as Unicode text
-- Finder の tell ブロック内でも可
- theItem が POSIX file の場合
例. file "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"- --> alias
- theItem as alias
-- 通常と同じ - --> POSIXパス文字列
- POSIX path of theItem
-- 通常と同じ - --> HFS パス文字列
- theItem as Unicode text
-- 通常と同じ
- theItem が POSIX パス文字列の場合
例. "/Users/hoge/Desktop/宮﨑あおい.jpg"- --> alias
- (POSIX file theItem) as alias
-- Finder の tell ブロック内でも可 - --> POSIX file
- POSIX file theItem
-- Finder の tell ブロックの外に書く - --> HFS パス文字列
- (POSIX file theItem) as Unicode text
-- Finder の tell ブロック内でも可
- theItem が HFS パス文字列の場合
例. "Macintosh HD:Users:hoge:Desktop:宮﨑あおい.jpg"- --> alias
- (POSIX file (POSIX path of theItem)) as alias
-- Finder の tell ブロック内でも可 - --> POSIX パス文字列
- POSIX path of theItem
-- 通常と同じ - --> POSIX file
- POSIX file theItem
-- Finder の tell ブロックの外に書く
また、theItem が file "ファイル名" of folder "フォルダ名" of folder ... という形式の場合は
as alias 変換、as Unicode text 変換ともに通常通りに行え、
POSIX パスへの変換も
POSIX path of (theItem as Unicode text)
といういつものやり方が通用するので、
あえて as POSIX file 変換 (--> file "コロン区切りパス") をしたい場合を除けば
特にエラーに備える必要はないと思われます。
環境: Mac OS X 10.4.8
今月の MacPeople に
~/Library/Preferences/com.apple.finder.plist を Property List Editor で開き、
Root > DesktopViewOptions > IconSize
の数値を書き換えてアイコンを巨大にするという裏技が紹介されていました。
この件で検索する人がいるのではないかと思うので書いておきますが、DesktopViewOptions という key はデスクトップの表示設定を変更したことがないと見つからないかもしれません。
クリーンインストール直後または出荷時の状態ではどうなのかはわかりませんが、少なくとも com.apple.finder.plist を Preferences フォルダの外に出して Finder を再起動したときに作成される同 plist に DesktopViewOptions は含まれません。
といっても難しい話ではなくて、
- デスクトップの空いている所をクリック。
- メニュー"表示" > "表示オプションを表示" (command+J)
- アイコンのサイズを変えたり、チェックボックスをクリックしたりしてみる。(後で元に戻してもよい)