2010年12月14日火曜日

Airで特定のディレクトリ以下ファイル一覧を取得したい

というわけでタイトル通りです。

昨日修正した、jar を exe化したものをAirから動かした時にjar側で最後にメッセージを出さないと終了のタイミングが上手く合わない

というマイナーな問題をそろそろ解決しようかと動き出したのが昨日。
その件については後でまた書きます。

で、結局とりあえず直ってるかもしれないんじゃ?的な感じになったのでさあ動かそうとプログラムを動かした所で、プログラム側にエラー!
やべぇ検証忘れだよ…というわけであわてて修正。

その修正内容が今回のタイトルです。

要はこの辺のロジック、流用してきただけなので、そっちでやってるオリジナルプロパティにセットするのを忘れてエラーになってるわけですが、
そもそもやってることがファイルの一覧をArrayで持つ、なんてことなので探せばファンクションとかあるんじゃね?

というわけで検索結果がこれ
http://journal.mycom.co.jp/series/air/006/index.html

ファイル変数にあるlistDirectoryAsyncを使えとのこと。
しかし、ないんだが…これFlex2か?

まあそれなら3にもちゃんと代用の奴があるはず…ということでメソッド一覧見て選んだのがこれ

var fl:File = new File("C:/testDirectory");
 var Arr:Array = fl.getDirectoryListing();


これでディレクトリ含むファイルの一覧が取れちゃいます!
なんすば!


とまで書いて思いました。

ああ、そういえば流用元ってフォルダ選択した後にファイルの選択があるからディレクトリ指定でリスト貰っても駄目だったね…。

消されたらそれを覚えておかないとねぇ…面倒な。

でも、これのオリジナルプロパティ型ってArrayCollectionなんだよね。
普通に考えれば上記メソッドを利用して、型変換面倒だからArrayを使用すると思うんだ!
だからきっとこのメソッドを使ってないはず!ちゃんと流用元のソースを確認したわけじゃないけどね…

0 件のコメント:

コメントを投稿