use*_*406 389 java directory filenames file
可能重复:
读取文件夹中的所有文件
我需要创建一个列表,其中包含文件夹中所有文件的名称.
例如,如果我有:
000.jpg
012.jpg
013.jpg
Run Code Online (Sandbox Code Playgroud)
我想将它们存储为ArrayList
with [000,012,013]
值.
在Java中最好的方法是什么?
PS:我在Mac OS X上
Rof*_*ion 734
你可以这样做:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
你想只获得JPEG文件或所有文件吗?
Sea*_*ung 130
创建一个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());
}
}
Run Code Online (Sandbox Code Playgroud)
Ano*_*non 66
以下是如何查看文档.
首先,你正在处理IO,所以请查看java.io
包.
有两个看起来很有趣的类:FileFilter和FileNameFilter.当我点击第一个时,它向我展示listFiles()
了File类中有一个方法.该方法的文档说:
返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件.
在File
JavaDoc中向上滚动,我看到了构造函数.而这正是我需要能够创建一个File
实例并调用listFiles()
它的全部内容.滚动更进一步,我可以看到有关如何在不同操作系统中命名文件的一些信息.