資産のフォルダファイルのファイルタイプを決定します
-
26-09-2019 - |
質問
質問:あなたは、プログラム資産フォルダ内のディレクトリと通常ファイルを区別するにはどうすればよいです。
資産フォルダにアクセスファイルにAssetManagerを使用する場合は、は、ファイルが実際にファイルまたはディレクトリであるかどうかを判断することは不可能と思われます。あなたはlist
メソッドからファイルのリストを取得し、その後open
メソッドを使用してファイルを開きます。私は、おそらくアセットファイルディスクリプタを取得するためにopenFd
メソッドを使用して(そしてその後、通常のファイルディスクリプタを要求することは)私にいくつかの情報を提供するだろうと思いました。しかし、(それはファイルディスクリプタを持っているディレクトリのために何を意味しますので、理にかなって...?)のIOException内のディレクトリ結果のファイルディスクリプタを要求します。
現在、私は、ファイルが実際にディレクトリであるかどうかを判断するために、そのIOExceptionが(資産フォルダにディレクトリを開くことattemptngから生じる)に頼っています。 (通常のファイルを開くと、うまく動作します)。これは悪いアイデアのように思えます。ファイルとディレクトリを区別するために、任意の他の提案?
解決
私はあなたのポストのコメントに同意します。しかし、あなたの質問に答えるために、Fileオブジェクトが資産ディレクトリで指摘します
File root = new File("path/to/directory");
次に、あなたがこのようなそのすべてのサブファイルおよびディレクトリを抽出することができます
File[] files = root.listFiles();
あなたがリストを持っていたら、あなたはFile.isDirectoryを(使用して何が何であるかを判断することができます)。
最後のピリオド以下の文字のをつかむためにString.subStringを()を使用して、簡単なようで、ファイルの種類を決定するためとして、。
このことができます願っています。