我找到了一个遍历文件夹并返回文件名的代码。我创建了一个包含 8000 个位置的 String[] 数组,因为我有大约 7500 个文件并且还在增加。如果我使用我在 system.out.println 中找到的代码,它会返回每个文件名,但如果我使用我的代码将位置写入数组索引,我只会得到 1 个位置,其余为空。不幸的是我无法找出问题所在。import java.io.*;public class Tester { public static void main(String[] args) { File folder = new File("mypath\\myfilefolder"); File[] listOfFiles = folder.listFiles(); String[] fileNames = new String[8000]; for (int i = 0; i < listOfFiles.length; i++) { int c = 0; if (listOfFiles[i].isFile()) { fileNames[c++] = listOfFiles[i].getName(); // Seems not to be doing anything like supposed // System.out.println(listOfFiles[i].getName()); // Prints every filename on a new line } else if (listOfFiles[i].isDirectory()) { System.out.println("Directory " + listOfFiles[i].getName()); } } for (String element: fileNames) { System.out.println(element); } }}我希望能够遍历文件名并获取文件名,以便我可以使用它。但实际上只有第一个位置发生了变化,其他所有位置仍然为空。
2 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
这与使用流 API(Java 1.8 及更高版本)的算法相同:
String[] fileNames = Arrays.stream(folder.listFiles()) // stream all the files in the directory .filter(file -> !file.isDirectory()) // filter any directory files in there .map(File::getName) // map an item to its name .toArray(String[]::new); // collect as a String array
添加回答
举报
0/150
提交
取消