Android:如何将目录中的所有文件列入数组?

And*_*oob 4 arrays android file android-file

我有一个变量"directorypath".它有sd卡目录的路径.

Ex: "sdcard/images/scenes"
Run Code Online (Sandbox Code Playgroud)

现在,我想列出"directorypath"中的所有文件,并希望Array存储其中的所有文件名.

Ex: Array[0]= Filename1, Array[1]= Filename2 Etc... 
Run Code Online (Sandbox Code Playgroud)

我尝试了类似Array[] myArray = directorypath.listfile();但没有工作的东西..!任何人都可以给我代码或至少帮助我吗?非常感激.

小智 19

我认为您面临的问题与外部存储目录文件路径有关.如果可以使用环境访问,请不要将整个路径用作变量.

String path = Environment.getExternalStorageDirectory().toString()+"/images/scenes"; 
Run Code Online (Sandbox Code Playgroud)

此外,您可以将API listfiles()与文件对象一起使用,它将起作用.例如:::

File f = new File(path);        
File file[] = f.listFiles();
Run Code Online (Sandbox Code Playgroud)


Ich*_*aki 5

请尝试以下可能对您有帮助的代码

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;
}
Run Code Online (Sandbox Code Playgroud)

这将返回您指定的目录下的文件列表.
从列表中的File对象中,您将获得有关所需文件的所有信息.