Folder オブジェクト

Folder オブジェクトは、jsfolder と呼ばれるMax オブジェクトの中で定義される js の「エクスターナルオブジェクト」です。これは、フォルダ内のファイルに対する繰り返し処理のために用いられます。

Folder コンストラクタ

f = new Folder(pathname);

pathname はサーチパス内のフォルダ名、または Max のパス構文によるフルパス名のどちらでも構いません。

例:

f = new Folder("patches"); // サーチパス内の patches フォルダを検索しようとします。 f = new Folder("Disk:/folder1/folder2"); // 絶対パスを使っています

Folder オブジェクトを作った後、おそらく typelist プロパティのセッティングによって横断検索するファイルを制限したいと考えるでしょう。

f.typelist = [ "iLaF" , "maxb" , "TEXT" ]; // 標準の Max ファイル

ファイルタイプコードやそれに関連した拡張子は、Cycling'74 フォルダ内の init フォルダの中にある、max-fileformats.txt をチェックして下さい。

Folder オブジェクトがファイルを横断検索する際に、カレントファイルに関する情報をそのファイルのプロパティによって調べることができます。また、end プロパティをテストすることによって、全てのプロパティを見たかどうかを判断することができます。次のコードはフォルダ内で見つけた全てのファイル名を表示します。

while (!f.end) { post(f.filename); post(); f.next(); }

Folder オブジェクトによる処理を終了するためには、このオブジェクトを削除するか、close メッセージを送ります。close メッセージを送った場合、後で再利用することができます。

f.close ();

Folder プロパティ

Folder のプロパティには2種類のタイプがあり、1つはフォルダ内のカレントファイルを参照し、もう1つは Folder オブジェクトのステートを参照します。これらのプロパティのほとんどは読み出し専用(read-only)です。

Folder ステートプロパティ

end (Boolean, get)

フォルダにこれ以上ファイルが存在しないという場合、または Folder オブジェクトの pathname アーギュメントがフォルダを見つけられなかった場合に非0(true)になります.

count (Number, get

フォルダに含まれる、指定された型(複数指定可)のファイルの総数。

pathname (String, get)

フォルダのフルパス名。

typelist (Array of Strings, get/set)

フォルダ内のファイルを検索するために使用されるファイルタイプのリスト。すべてのファイルを検索する場合(デフォルトの設定)には、typelist プロパティに空の配列をセットします。

カレントファイルプロパティ

filename (String, get)

カレントファイルのファイル名。

moddate (Array, get)

カレントファイルが最後に変更された年、月、日、時、分、秒の値を持つ配列。この値は Javascript の Date オブジェクトを作るために使用できます。

filetype (String, get)

カレントファイルのファイルタイプに結びつけられる4文字のコード。このコードは、max-fileformats.txtというファイルに書かれています。これは、 Macintosh では、/Library/Application Support/Cycling ’74、Windows では C:\Program Files\Common Files\Cycling’74 というフォルダの中にあります。ファイル拡張子のマッピングが存在しない場合には、nil 値が返されます。

extension (String, get)

カレントファイル名の、ピリオドを含む拡張子。ピリオドの後に文字がない場合には nil 値が返されます。

Folder メソッド

reset ()

ファイルのリストの先頭から繰り返し処理を開始します。フォルダが既に close() 関数によって閉じられている場合には、再び開きます。

next ()

次のファイルに移動します。

close ()

フォルダを閉じます。このフォルダを使用を再開する場合は、reset() 関数を呼び出します。