このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

MOやCD-ROMのイメージファイルをscriptでとりたいのですが…

発言者:中条
( Date Sunday, October 12, 1997 23:26:36 )


久しぶりに書き込みます。
いきなり質問なのですが、Apple ScriptでMOやCD-ROMのイメージ
(フォルダーやファイルの構成)をHDの情報から
とることはできるのでしょうか。

たとえば、MOのHDのイメージマップ?を得る方法です。

田中求之 さんからのコメント
( Sunday, October 12, 1997 23:57:46 )

ディレクトリーの構造さえわかればいいのですか? それとも、いわゆるディスクイメージ
ファイル( DiskCopy や ShrinkWarp で作成するファイル)を作りたいということなの
でしょうか?

おそらく前者だと思うのですが、どの程度の情報が必要なのでしょうか?

中条 さんからのコメント
( Monday, October 13, 1997 10:44:40 )

説明が下手で、すみませんでした。

得たい情報としては、ディレクトリーの構造です。
程度としては、あるディスクの中にどのような名前のファイルが
入っているかが解れば十分です。(ファイル名だけでも良い)

シェアウエアーのDisk folderとまではいきませんが、あるディスクに
入っているファイルの名前の一覧を得るスクリプトを作成したいと思っています。

田中求之 さんからのコメント
( Monday, October 13, 1997 12:26:46 )

>程度としては、あるディスクの中にどのような名前のファイルが
>入っているかが解れば十分です。(ファイル名だけでも良い)

でしたら、速度は別にすれば(=遅いですが (^_^;; )以下のようなスクリプトで
すべてのファイルの名前のリストを得ることが可能です。

tell application "Finder"
  set myList to name of files of entire contents of disk "MacHD"
end tell

File specification (FSSpec) のリストでも良いのでしたら、Tanaka's osax
1.2b5 を使って

set myList to dirLister file "MacHD:" with sub folders

とやれば、ファイルの一覧が FSSpec のリストとして得られます。

中条 さんからのコメント
( Monday, October 13, 1997 17:12:52 )

ありがとうございました。
早速スクリプト、

tell application "Finder"
  set myList to name of files of entire contents of disk "MacHD"
end tell

を打って見ました。あっさりとファイル一覧を得ることができました。
entire contentsという言い回しを知っているのと知らないのとでは、
すごく差がでますね!ところで、entire contentsとはどのような意味なのですか?
他に利用するとしたらどのような使い方をするのでしょうか?
entire contentsなどという言い回しをどこから知ったのですか?
やはり、人のまねをしてスクリプトを作っていくのが一番ですかね!

質問ばかりですみません。

田中求之 さんからのコメント
( Monday, October 13, 1997 19:20:44 )

>entire contentsとはどのような意味なのですか?

entire (=すべての/全部そろえた) contents (=中身) です。

Finder では、entire contents of folder/disk によって、指定したフォルダーや
ディスクの中に入っているアイテム(ファイルとフォルダー)のすべてのリストを得ること
が可能になっています。

ですから、これに files of という限定をつけてファイルのリストにし、さらに name of
によって、ファイルの名前だけをリストアップさせています。

こうした Finder での各種操作方法などは、AppleScript Finder Guide という公式の
解説文書が Apple から出ていますので、これをお読みになるとよいでしょう。 Apple
のサイトにいけば、ダウンロードできるようになっています(場所は忘れましたが)。