変数「directorypath」があります。 SDカード内のディレクトリへのパスがあります。
_Ex: "sdcard/images/scenes"
_
ここで、「ディレクトリパス」内のすべてのファイルを一覧表示し、配列にすべてのファイル名を格納する必要があります。
_Ex: Array[0]= Filename1, Array[1]= Filename2 Etc...
_
Array[] myArray = directorypath.listfile();
のようなものを試しましたが、機能しませんでした。誰かが私にコードを教えてもらえますか、少なくとも私を助けてくれますか?大変感謝いたします。
あなたが直面している問題は、外部ストレージディレクトリのファイルパスに関連していると思います。環境でアクセスできる場合は、パス全体を変数として使用しないでください。
String path = Environment.getExternalStorageDirectory().toString()+"/images/scenes";
また、ファイルオブジェクトでAPI listfiles()を使用でき、それが機能します。たとえば::
File f = new File(path);
File file[] = f.listFiles();
あなたを助けるかもしれない次のコードを試してください
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オブジェクトから..必要なファイルに関するすべての情報を取得します。
次のコードを試してください。
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
}
その非常に単純な2行のコード
File mListofFiles = new File(Environment.getExternalStorageDirectory.getAbsolutePath()+"/",childpath:Foldername);
File f = new File(mListofFiles.toString());
File file[] = f.listFiles();
私は確かに不適切なデータ型の関数を呼び出していました。つまり、listfiles()は文字列型変数では機能しません。
そこで、ファイルのリストを渡すために、ファイルタイプ変数とFile []配列を作成しました。これで問題は解決しました。