获取文件夹中所有文件的文件名
可能重复:
读取文件夹中的所有文件
我需要创build一个文件夹中的文件的所有名称的列表。
例如,如果我有:
000.jpg 012.jpg 013.jpg
我想用[000,012,013]
作为值将它们存储在ArrayList
。
Java中最好的方法是什么?
PS:我在Mac OS X上
你可以这样做:
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文件或所有文件?
创build一个File
对象,将目录path传递给构造函数。 使用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()); } }
以下是如何查看文档 。
首先,你正在处理IO,所以看看java.io
包 。
有两个看起来很有趣的类: FileFilter和FileNameFilter 。 当我点击第一个时,它显示了File类中有一个listFiles()
方法。 该方法的文档说:
返回表示由此抽象path名表示的目录中的文件的抽象path名数组。
在File
JavaDoc中滚动,我看到构造函数。 这真的是我需要能够创build一个File
实例,并调用listFiles()
。 滚动更进一步,我可以看到有关如何在不同的操作系统中命名文件的一些信息。