2012-04-13 9 views
0

私は、actionscriptのかなり基本的な理解と、少しのコードを書く方法を持っていますが、私はこの問題をどのように攻撃するかについて苦労しています。Actionscript 3ディレクトリ内のファイルを検索し、戻りパス

私たちは、BIRTレポートの束を実行するアプリケーションを持っています。現在、レポート/フォルダに保存されています。最近はますます増えてきており、これらをさまざまな部門のサブフォルダにリファクタリングする必要があります。

Reports/ 
    Campus 1/ 
     Budget Office/ 
      report1.rptdesign 
      report2.rptdesign 
     Human Resources/ 
    Campus 2 
    Campus 3 
私はレポート名を知っていれば、私は特定のレポートへのパス名を取得し、それがレポート/ *ディレクトリ内のどこかにあることをすることができますどのように

たとえば、ユーザーがreport2.rptdesignを選択した場合、「reports/campus1/budget office /」のパスを戻すにはどうすればよいですか?

少なくとも私が正しい方向に向かうためのサンプルコードのURLは、大きな助けになるでしょう、ありがとう!

私はこれを見つけました。Flex, AIR: Search for .pdf files in specified folder、私には必要なものかどうかはわかりません。

+0

ユーザーはどのようにレポートを選択しますか? –

+0

レポート名は、フレックス・フロント・エンドを介して提供されるOracleデータベースに格納されます。ディレクトリが必要な唯一の時間は、ユーザーがレポートを実行することを選択したときです。その時点で、LaunchReportCommand.asが起動します。問題は、パスが "frameset?_report = reports /"にハードコードされており、選択したレポートに基づいて変更する必要があることです。すべてが意味をなさないことを願っています – idonaldson

+0

これは良い出発点のようですhttp://www.wuup.co.uk/as3-basics-list-all-files-in-a-folder-including-subdirectories-air – francis

答えて

0

Javaで再帰的検索を行うのではなく、DBのファイルを増やしてみてください。このアプローチはより良いでしょう。あなたはフレックスからサービスを呼び出すことによって、このサンプルのようなものをコレクションに返すサーバーからのレポートを取得します。

<reports> 
    <report> 
     <fileName> report1.rptdesign</fileName> 
     <filePath>Campus 1/Budget Office/report1.rptdesign</filePath> 
    </report> 
    <report> 
     <fileName> report1.rptdesign</fileName> 
     <filePath>Campus 1/Human Resources/report1.rptdesign</filePath> 
    </report> 
    <report> 
     <fileName> report1.rptdesign</fileName> 
     <filePath>Campus 2/Budget Office/report1.rptdesign</filePath> 
    </report> 
    <report> 
     <fileName> report1.rptdesign</fileName> 
     <filePath>Campus 2/Human Resources/report1.rptdesign</filePath> 
    </report> 
</reports> 

これにより、ユーザーとのやりとりの中断に対する1回の呼び出しが保存されます。

+0

switchステートメントを使用してレポートの命名を標準化しました。 – idonaldson

0

レポート名を知っていて、レポート/ *ディレクトリのどこかにある場合は、パス名を特定のレポートに取得するにはどうすればよいですか?

これはブラウザではできません。

関連する問題