首页 文章

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

提问于
浏览
329

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

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

例如,如果我有:

000.jpg
012.jpg
013.jpg

我想将它们存储在带有 [000,012,013] 值的 ArrayList 中 .

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

PS:我在Mac OS X上

3 回答

  • 59

    创建一个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());
        }
    }
    
  • 116

    你可以这样做:

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

  • 652

    以下是如何查看documentation .

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

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

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

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

相关问题