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

问题

可能重复:读取文件夹中的所有文件

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

例如,如果我有:

000.jpg
012.jpg
013.jpg

我想将它们存储在aArrayListwith[000,012,013]as值中。

在Java中使用它的最佳方法是什么?

PS:我在Mac OS X上


#1 热门回答(603 赞)

你可以这样做:

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文件或所有文件吗?


#2 热门回答(107 赞)

创建aFile对象,将目录路径传递给构造函数。使用listFiles()为目录中的每个文件检索一个34993477对象的数组,然后调用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());
    }
}

#3 热门回答(54 赞)

以下是如何查看documentation

首先,你正在处理IO,所以请查看java.iopackage

有两个看起来很有趣的类:FileFilterFileNameFilter。当我点击第一个时,它向我显示在File类中有一个alistFiles()方法。该方法的文档说:

返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。

FileJavaDoc中向上滚动,我看到了构造函数。这就是我真正需要能够创建一个File实例并调用它的listFiles()。滚动更进一步,我可以看到有关如何在不同操作系统中命名文件的一些信息。