Top > おぼえたこと > AppleScript編

クリエーター変更

概要

クリエーターとは、データが何で種類のものかを表すため4バイトの文字列です。
アプリケーションの作者がAppleに申請を依頼し、全てのアプリケーションに個別のクリエーターを割り振っています。
Windows等の拡張子と似たようなものです。
このクリエーターはどこに記述されているのかというと、リソースフォークと呼ばれるMac独特のデータ部分に書込まれており、これが壊れてしまい、何の書類か判らなくなってしまう事があります。

メールなどで素のままで書類が送られてきた場合などに書類が白紙のアイコンになってしまい、本来開くはずのアプリケーションで開く事が出来なくなる事があります。

そんな場合、クリエーター変更ユーティリティを使うのですが、自分でも簡単に作れてしまいます。

まずは下記のスクリプトを記述して、アプリケーション形式で保存をしてみて下さい。その際に、「初期画面を表示しない」にチェックを入れるのを忘れないで下さい。

¬のマークは改行しないという意味です。1行に続けて書いて下さい。
コピペする場合には、一旦テキストエデタ(Jeditなど)にペースとし、全角スペースを消して、¬を半角スペースに変え、後ろの改行を消してからスクリプトエディタに貼付けて下さい。

on open drop_items
 tell application "Finder"
  repeat with obj in drop_items
   set creatorData to creator type of obj
   display dialog name of obj & "のクリエータタイプ:" & ¬
creatorData & "を変更します。" default answer creatorData ¬
buttons {"キャンセル", "OK" }default button 2 with icon note
   set cre to text returned of result
   display dialog name of obj & "のクリエータタイプを" & ¬
return & cre & "に変更します。"¬
buttons {"キャンセル", "OK", "全てOK" } default button 2 ¬
with icon note
   set btn to button returned of result
   if btn is "キャンセル" then
    exit repeat
   else if btn is "全てOK" then
    repeat with obj in drop_items
     set creator type of obj to cre
    end repeat
    exit repeat
   end if
   set creator type of obj to cre
  end repeat
 end tell
end open

Download: クリエータ変更スクリプト(Classic用)

保存出来たアプリケーションに、ファイルをドラッグ&ドロップしてみて下さい。
ドロップした書類のクリエーターが表示され、別のものに変更するよう促してきます。
変なものを居れると、わけのわからない書類になってしまいますので注意しましょう。

スクリプト解説

●スクリプトの流れ

on open drop_items

on openでまずはアプリが起動します。
変数drop_itemsにドロップされたファイルが代入されます。

repeat with obj in drop_items

ドロップされたファイルの数だけ処理を実行します。
drop_itemsから一つずつファイルを拾いだし、変数objに代入します。

set creatorData to creator type of obj
display dialog name of obj & "のクリエータタイプ:" & ¬
creatorData & "を変更します。" default answer ¬
creatorData buttons {"キャンセル", "OK"} default button 2 with icon note
set cre to text returned of result
display dialog name of obj & "のクリエータタイプを" & return & cre & ¬
"に変更します。" buttons {"キャンセル", "OK", "全てOK"} ¬
default button 2 with icon note
set btn to button returned of result

変数objに代入されたファイルのクリエーターを変数creatorDataに代入し、display dialogでクリエーターの変更入力を行うダイアログを表示しています。
結果は変数creに代入。

続いて複数の書類を変更する場合を考え、変更はこの書類だけなのか、それとも全てに適応するのかダイアログを出して確認しています。
結果は変数btnに代入。

if btn is "キャンセル" then
 exit repeat
else if btn is "全てOK" then
 repeat with obj in drop_items
  set creator type of obj to cre
 end repeat
 exit repeat
end if

ダイアログの結果から作業の振り分けを行っています。
変数btnは、ドラッグされたファイル全てに同じ処理をするのかが代入されています。

答えは3つあり、"キャンセル"か "OK"か "全てOK"になります。

if btn is "キャンセル" then

答えが"キャンセル"の場合、作業を中止して終了致します。

else if btn is "全てOK" then

答えが"全てOK"の場合には、すべてのドロップされたファイルの数だけ同じ処理を繰り返します。

以上以外の答えは "OK"となり、一つ作業を行い、またはじめから同じ作業を繰り返します。

●プロパティ

このクリエーター変更スクリプトは、ほとんど今迄に出てきた命令で作られていますが、2つだけ新しい命令が出てきています。

name of obj

creator type of obj

だいたい察しはつくと思われますが、name of objはファイル名です。
そしてcreator type of objがクリエータタイプとなります。

このようなファイルの情報をプロパティと呼び、日本語では属性とも呼ばれます。

名前以外にも容量や作成日・変更日などの情報やファイルタイプなどもあります。
プロパティは読込み専用のものから、読み書き出来るものがあり、名前なども読み書きが出来るプロパティです。

以下は、Finderが扱うitemクラスのプロパティです。
(itemクラスとはMacで取り扱えるファイル全てを指します。)

name 項目の名前表す文字列。  
index 項目が含まれるコンテナの中で割り振られた番号。
相対値であり、コンテナに変更が加わると、indexも変更される可能性がある。
 
id Macintoshのファイルシステムによって項目に割り振られたID番号。
項目が削除される迄その項目のIDは変更される事はない。
読込み専用
container 項目の含まれるコンテナの参照。 読込み専用
disk 項目の含まれるディスクの参照。 読込み専用
folder 項目の含まれるフォルダの参照。 読込み専用
position 項目が含まれるコンテナのウィンドウの中での、項目のアイコンの位置。
アイコンの左上の位置をウィンドウの座標で、{X座標,Y座標}のリストで表す。表示がリスト表示になっている場合には、Setする事が出来ない。
 
bounds 項目が含まれるコンテナのウィンドウの中での、項目のアイコンの位置と、大きさを表す。
アイコンの{左上のX座標,左上のY座標,右下のX座標,右下のY座標}をリストで表す。表示がリスト表示になっている場合には、Setする事が出来ない。
 
label index 項目のラベルを表す整数。
0=なし 1=必須 2=重要 3=進行中
4=未決 5=個人用 6=計画1 7=計画2
 
kind 項目の種類を表す文字列。 読込み専用
discription その項目の解説が書かれた文字列。他では見る事が出来ない。 読込み専用
comment 項目に付けられたコメントの文字列  
size 項目の容量。バイト単位で表した整数。 読込み専用
physical size 項目のディスク上での表示容量をバイト単位で表した整数。 読込み専用
creation date 項目の作成日 読込み専用
modification date 項目の修正日  
icon 項目のアイコンデータをicon familyクラスのデータで表す。  
selected その項目が選択されているかどうか。  
content space 項目が開かれた時の空間の参照 読込み専用
window 項目が開かれた時のウィンドウの参照 読込み専用
infomation window 項目の情報ウィンドウの参照 読込み専用

 

ほかにもfileのプロパティもあります。

file type ファイルを表すファイルタイプ。4バイトの文字列。  
creator type ファイルのクリエータを表す4バイトの文字列。  
loced ファイルのロック状態。  
stationery ファイルがひな形かどうか。  
product vertion 製品バージョンを表す文字列 読込み専用
vertion バージョンを表す文字列 読込み専用

 

読込み専用のものは、見る事は出来ても変更は出来ませんが、 それ以外のものは自由に変更が出来ます。

次のページでは利用度の高い、ファイルネームの変更を説明します。

ページのTopに戻る