获取文件夹中所有文件的文件名[重复]

问题描述 投票:0回答:3

我需要创建一个包含文件夹中所有文件名称的列表。

例如,如果我有:

000.jpg
012.jpg
013.jpg

我想将它们存储在

ArrayList
中,并以
[000,012,013]
作为值。

在 Java 中执行此操作的最佳方法是什么?

PS:我使用的是 Mac OS X

java file directory filenames
3个回答
832
投票

你可以这样做:

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
if(listOfFiles != null) {
 for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    System.out.println("File " + listOfFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + listOfFiles[i].getName());
  }
 }
}

您想只获取 JPEG 文件还是所有文件?


159
投票

创建一个

File
对象,将目录路径传递给构造函数。使用
listFiles()
检索目录中每个文件的
File
对象数组,然后调用
getName()
方法获取文件名。

List<String> results = new ArrayList<String>();


File[] files = new File("/path/to/the/directory").listFiles();
//If this pathname does not denote a directory, then listFiles() returns null. 

for (File file : files) {
    if (file.isFile()) {
        results.add(file.getName());
    }
}

72
投票

以下是查看文档的方法。

首先,您要处理 IO,因此请查看

java.io
package

有两个类看起来很有趣:FileFilterFileNameFilter。当我单击第一个时,它向我显示

File
类中有一个 listFiles() 方法。该方法的文档说:

返回抽象路径名数组 表示目录中的文件 由这个抽象路径名表示。

File
JavaDoc 中向上滚动,我看到了构造函数。这确实是我需要能够创建一个
File
实例并在其上调用
listFiles()
的全部。继续滚动,我可以看到一些有关文件在不同操作系统中如何命名的信息。

© www.soinside.com 2019 - 2024. All rights reserved.