繁体   English   中英

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

[英]Android: How to list all the files in a directory in to an array?

我有一个变量“directorypath”。 它有sd卡目录的路径。

Ex: "sdcard/images/scenes"

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

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对象中,您将获得有关所需文件的所有信息。

根据您的错误消息“无法解析listFiles()”,您试图在String对象上调用一个方法,当您实际想要在File对象上调用它时。

创建一个新的File对象,

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

我确实在调用不正确数据类型的函数。 即,listfiles()将不适用于String类型变量.. !!

所以,我创建了一个File类型变量和一个File []数组来传递文件列表..! 这解决了这个问题。

它非常简单只需两行代码

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

请尝试以下代码:

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM