我找到了一個(gè)遍歷文件夾并返回文件名的代碼。我創(chuàng)建了一個(gè)包含 8000 個(gè)位置的 String[] 數(shù)組,因?yàn)槲矣写蠹s 7500 個(gè)文件并且還在增加。如果我使用我在 system.out.println 中找到的代碼,它會(huì)返回每個(gè)文件名,但如果我使用我的代碼將位置寫(xiě)入數(shù)組索引,我只會(huì)得到 1 個(gè)位置,其余為空。不幸的是我無(wú)法找出問(wèn)題所在。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); } }}我希望能夠遍歷文件名并獲取文件名,以便我可以使用它。但實(shí)際上只有第一個(gè)位置發(fā)生了變化,其他所有位置仍然為空。
2 回答

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
永遠(yuǎn)不會(huì)使用在“c++”處更改的值。每次你的代碼執(zhí)行到 c++ 之前,c 的變量被重置為 0。

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
這與使用流 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
添加回答
舉報(bào)
0/150
提交
取消