web-dev-qa-db-ja.com

Android:ディレクトリ内のすべてのファイルを配列にリストする方法は?

変数「directorypath」があります。 SDカード内のディレクトリへのパスがあります。

_Ex: "sdcard/images/scenes"
_

ここで、「ディレクトリパス」内のすべてのファイルを一覧表示し、配列にすべてのファイル名を格納する必要があります。

_Ex: Array[0]= Filename1, Array[1]= Filename2 Etc... 
_

Array[] myArray = directorypath.listfile();のようなものを試しましたが、機能しませんでした。誰かが私にコードを教えてもらえますか、少なくとも私を助けてくれますか?大変感謝いたします。

5
Android_Noob

あなたが直面している問題は、外部ストレージディレクトリのファイルパスに関連していると思います。環境でアクセスできる場合は、パス全体を変数として使用しないでください。

String path = Environment.getExternalStorageDirectory().toString()+"/images/scenes"; 

また、ファイルオブジェクトでAPI listfiles()を使用でき、それが機能します。たとえば::

File f = new File(path);        
File file[] = f.listFiles();
20
user4463890

あなたを助けるかもしれない次のコードを試してください

List<File> getListFiles(File parentDir) {
    ArrayList<File> inFiles = new ArrayList<File>();
    File[] files = parentDir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            inFiles.addAll(getListFiles(file));
        } else {
                inFiles.add(file);
        }
    }
    return inFiles;
}

これにより、指定したディレクトリの下にあるファイルのリストが返されます。
リスト内のFileオブジェクトから..必要なファイルに関するすべての情報を取得します。

5
Ichigo Kurosaki

次のコードを試してください。

File externalStorageDirectory = Environment.getExternalStorageDirectory();
File folder = new File(externalStorageDirectory.getAbsolutePath() + "/FilePath");
File file[] = folder.listFiles();
if (file.length != 0) {
    for (int i = 0; i < file.length; i++) {
        //here populate your list
    }
} else {
    //no file available
}
1

その非常に単純な2行のコード

 File mListofFiles = new File(Environment.getExternalStorageDirectory.getAbsolutePath()+"/",childpath:Foldername);
 File f = new File(mListofFiles.toString());        
 File file[] = f.listFiles();     
0
Nadeem Bhat

エラーメッセージ「ListFiles()を解決できません」によると、実際に File でメソッドを呼び出したいのに、 String オブジェクトでメソッドを呼び出そうとしています。オブジェクト。

新しいFileオブジェクトを作成し、

String parentDirectory = "path/to/files";
File dirFileObj = new File(parentDirectory);
File[] files = dirFileObj.listFiles();
0
yiati

私は確かに不適切なデータ型の関数を呼び出していました。つまり、listfiles()は文字列型変数では機能しません。

そこで、ファイルのリストを渡すために、ファイルタイプ変数とFile []配列を作成しました。これで問題は解決しました。

0
Android_Noob