
一番簡単に試してみるには、MAXで何かMAXファイルを開くか、適当な名前でMAXファイルを保存してください。
リスナと呼ばれる上下2枚構成のウィンドウの上でも下でもいいので
maxfilename
と打ってからEnterを押します。
すると
maxfilename
"interior_LibBasic_001-008.max"
などとなります。これは現在開いているMAXファイルのファイル名です。
もしMAXを起動したばかりでUntitledなら""ということで空になります。
では次に
maxfilepath
と打ってからEnterを押します。
maxfilepath
"E:\3D\model\interior_LibBasic\"
などと出ます。これは現在開いているMAXファイルのパスです。
maxfilepath+maxfilepath
と打てば
maxfilepath+maxfilename
"E:\3D\model\interior_LibBasic\interior_LibBasic_001-008.max"
などとなり、完全なファイルパスになります。
これが何の役に立つのかはなかなかイメージしにくいでしょう?
ではgetFilesを試しましょう。
getFilesは指定したパスのディレクトリにあるファイルを列挙します。
ワイルドカード*を使うとざっくり指定できて便利です。
ワイルドカードはヘンな名前ですが便利なのでWebで調べて見るといいと思いますが、*をつけてあいまいに指定する方法です。
getFiles "E:\\3D\\model\\interior_LibBasic\\*.max"
などという具合に2個以上のMAXファイルを置いているディレクトリを書き込んでみてください。
【重要】""で囲んだ部分にはパス名を書き入れますが\マークは\\と2つ重ねます。
すると、*.maxなので.maxという部分を含んでいるファイル名全部が該当します。
#("E:\3D\model\interior_LibBasic\interior_LibBasic_001-001.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-002.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-003.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-004.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-005.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-006.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-007.max", "E:\3D\model\interior_LibBasic\interior_LibBasic_001-008.max")
という具合にずらっとそこにあるファイルを列挙します。
もし該当するファイル名をもつファイルが無いときは#()などの空の返答をしてきます。
getFiles "C:\\*"
などとするとCドライブ直下のファイルを列挙します。
このようなものがやはり何の役に立つのかわからないかもしれません。
しかし、こういうものはファイル名を一気に変えるとか、ファイルが1個も無いというエラーが起こらないように対処したりするのに役立ちます。
この場合はファイルが10個未満なので手でやればいいですが、10万個もあったらそれは大変です。
この方法ではそのディレクトリにあるファイルを掌握しているので、それを触れるようになるのです。
ついでに言うと、
(getFiles "C:\\*").count
とすればその数を数えます。countは数を数えてもらうときによく使います。
プログラムではこのように小さい行動そのものではたいしたことは出来ず、こういう小さい行動を組み合わせて具体的で柔軟な動作を形作っていきます。
では最後にリスナに打ち出された文字を消してしまうmaxScriptです。
clearListener()