特定のフォルダを定期的に監視して、入ってきたファイルをバッチ処理する......というのは、実に「よくある処理」だ。AppleScriptにおけるデザインパターンというものを考えてみれば、間違いなく5本の指に入るぐらいの頻出処理である。処理が返ってこないか、下手をすればスクリプトの実行プロセスがクラッシュするかもしれない。いうか、途中でkillしたくなること請け合いである。いまやっている仕事の事前のシミュレーションで、そのような利用形態が発生するに違いない、と思い至り......3万ファイルほど監視フォルダに入っていた場合でもファイル名の一覧リストを安全かつ迅速に取得できるプログラムをAppleScriptで書いてみた。ファイル一覧をFinderに命令して取得させるのは危険である。機能の高さが裏目に出て、通信量は増えるわ何わでFinderとAppleScriptの間でそのような処理を行ってはいけない。contentsによる一覧取得もちょっと危ない。contentsのお世話になるのは避けたいところだ(あんまり信じていない)。そこで、BSDレイヤーにいるlsコマンドを呼び出して、結果をすぐさまファイルに書き出し、さらに1行ずつ読み込んでリストに追加する、という処理を書いてみた。to」で別の変数経由で参照アクセスするようにして、一気にファイル名を取得。G5/2.5GHz上で、全処理を3秒ぐらいで終わるようになった。安全だし、これならファイル数が数十万のオーダーになってもまあそれほど時間もかからないだろう。