0

単純なアセット ディレクトリの一覧表示に苦労しています。私は次の構造を持っています(大まかに言えば):

-dirA
--data.xml
--AudioSUBdir
---some files here
--VideoSUBdir
---some files here
-dirB
--data.xml
--AudioSUBdir
---some files here
-test    
--SUBtestDir

必要なのは、親アセット ディレクトリの一覧です (つまり、dirA、dirB、および test。次に、data.xml ファイルを読み取り、これに基づいてサブディレクトリのコンテンツを処理します)。

目的の 2 つの文字列を取得するのは簡単だと思いました。

try {
   String[] fileNames;
   fileNames = getAssets().list("");
   for(String name:fileNames){
      // process it, e.g. write it out }
} catch (IOException e) {}

しかし、私が得ているのは、AudioSUBdir、dirA、dirB、VideoSUBdir、webkit のようなものです (Webkit のようなものはまったくありません!) 同時にいくつかの奇妙なことを行っているようです:

  • ディレクトリ構造を無視します。つまり、必要のないサブディレクトリも読み取ります
  • プロジェクトフォルダー全体には何もありませんが、魔法のようにwebkitディレクトリが表示されます
  • 「test」ディレクトリを完全に無視します

だから私の質問は2つ(半分)です

  1. ルート フォルダだけを取得するにはどうすればよいですか (処理されるファイル folder/data.xml の存在を後でテストし、アプリケーションが想定どおりに実行するようにします)。
  2. 何が起こっているのかについての説明。理論的には、サブディレクトリは必要ありませんが、サブディレクトリも書き出すという事実に対処できます。テストフォルダーを無視するという事実を乗り越えることさえできました(おそらくそれらが空だからですか?-空で、ファイルではなくサブディレクトリだけを含んでいますが、とにかく...)しかし、webkitフォルダーはどこから来ているのですか?apk 構築プロセスによって何らかの形で「事後生成」されていますか?
  3. すべてのサブフォルダーが実際には 1 つのルートに折りたたまれているような気がします。ビルド プロセス中に同じ名前のファイルが衝突するということですか?
4

1 に答える 1