1

この質問は尋ねられましたが、有効な回答は提案されていません。誰かがここで同様の質問をして答えました:内部ストレージの特定のフォルダーからファイルのリストを取得する方法は? 残念ながら、提案された回答 ( ) は実際には、提供されたファイルと同じパスを使用して新しいgetAbsoluteDirファイルを返します。

file.mkdir()繰り返しになりますが、アプリのプライベート内部ストレージ ( ) に存在するサブディレクトリ ( を使用) を作成するために使用される文字列名があります/data/data/come.my.app/file。その文字列名を使用して、そのサブディレクトリにあるファイルを一覧表示するにはどうすればよいですか? 私が思いつく唯一の方法はFile、そのアプリ ディレクトリ内のすべてのサブディレクトリをループして、サブディレクトリ名からサブディレクトリのオブジェクトを取得することです。確かにもっと直接的な方法があります...

私がこれを行っている理由は、このディレクトリへの参照を (含まれているファイルのために) バンドルを介して (アクティビティ間で) 渡しているためです。それを行うためのより良い方法があれば、私は提案を受け入れます。

4

1 に答える 1

4

残念ながら、提案された回答 (getAbsoluteDir) は実際には、提供されたファイルと同じパスを使用して新しいファイルを返します。

行をスキップして、代わりにlister使用することもできます。mydir.list()ただし、そこのコードは何も「返さない」-list()ディレクトリ内のファイルを返し、その回答では、そのリストの反復を示しています。

その文字列名を使用して、そのサブディレクトリにあるファイルを一覧表示するにはどうすればよいですか?

以下を使用できます。

File dir=getDir(whateverYourStringNameIs);

dir.list();

または:

File dir=new File(getFilesDir(), whateverYourStringNameIs);

dir.list();

基本的にはFile、ディレクトリでオブジェクトを取得し (オブジェクトを呼び出したので、取得方法は既にわかっていますmkdir())、 を呼び出しlist()て内容を取得します。Fileオブジェクトを取得したら、あとは標準の Java I/O です。

私がこれを行っている理由は、このディレクトリへの参照を (含まれているファイルのために) バンドルを介して (アクティビティ間で) 渡しているためです。

これらがすべてあなた自身の活動であると仮定すると、あなたに電話getAbsolutePath()して、あなたFileのために を得ることができStringますBundle. 次に、反対側で、 を使用new File(bundle.getString("whateverYouCalledIt"))してオブジェクトを再構成しFileます。または、Bundle アプリの内部ストレージの部分内の相対パスを表す文字列を渡し、それをgetDir()またはで使用して、同じパスを指すオブジェクトgetFilesDir()を作成します。File

于 2013-07-27T14:37:04.070 に答える