我需要创建一个列表,其中包含文件夹中所有文件的名称。
例如,如果我有:
000.jpg
012.jpg
013.jpg
我希望将它们存储在ArrayList
中,并将[000,012,013]
作为值。
在Java中使用它的最佳方法是什么?
PS:我在Mac OS X上
答案 0 :(得分:705)
你可以这样做:
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
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文件或所有文件?
答案 1 :(得分:123)
创建一个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());
}
}
答案 2 :(得分:61)
以下是查看documentation。
的方法首先,您正在处理IO,因此请查看java.io
package。
有两个看起来很有趣的课程:FileFilter和FileNameFilter。当我点击第一个时,它向我显示File类中有一个listFiles()
方法。该方法的文档说:
返回抽象路径名数组 表示目录中的文件 由此抽象路径名表示。
在File
JavaDoc中向上滚动,我看到了构造函数。这就是我需要能够创建File
实例并在其上调用listFiles()
的全部内容。滚动更进一步,我可以看到有关如何在不同操作系统中命名文件的一些信息。