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