2

質問:アセットフォルダ内のディレクトリと通常のファイルをプログラムでどのように区別しますか?

AssetManagerを使用してアセットフォルダ内のファイルにアクセスする場合、ファイルが実際にファイルであるかディレクトリであるかを判断することは不可能のようです。メソッドからファイルのリストを取得し、listメソッドを使用してファイルを開きますopenopenFdこのメソッドを使用してアセットファイル記述子を取得する(その後、通常のファイル記述子を要求する)と、いくつかの情報が得られると思いました。ただし、ディレクトリのファイル記述子を要求すると、IOExceptionが発生します(ディレクトリにファイル記述子があるとはどういう意味になるので、これは理にかなっています...?)。

現在、ファイルが実際にディレクトリであるかどうかを判断するために、そのIOException(アセットフォルダ内のディレクトリを開こうとした結果)に依存しています。(通常のファイルを開くことは問題なく機能します)。これは悪い考えのようです。ファイルとディレクトリを区別するための他の提案はありますか?

4

1 に答える 1

1

あなたの投稿へのコメントに同意します。しかし、あなたの質問に答えるには、資産ディレクトリを指す File オブジェクトを作成します File root = new File("path/to/directory");

次に、このようにすべてのサブファイルとディレクトリを抽出できます File[] files = root.listFiles();

リストを取得したら、File.isDirectory() を使用して何が何であるかを判断できます。

ファイルタイプの決定に関しては、 String.subString() を使用して最後のピリオドに続く文字を取得するのと同じくらい簡単です。

お役に立てれば

于 2010-06-09T23:52:11.657 に答える