共计 1632 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容主要讲解“Java 怎么遍历文件夹”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Java 怎么遍历文件夹”吧!
/** 遍历文件夹 */
public class TraversalFolder {
* 深度优先遍历文件夹
* p
* 要点:使用递归的方式来实现。 *
* [@param](https://my.oschina.net/u/2303379) topFile
* [@param](https://my.oschina.net/u/2303379) orderedList
*/
public static void depthFirstSearch(File topFile, ArrayList File orderedList) { if (null != topFile) { if (topFile.isDirectory()) { File[] files = topFile.listFiles();
for (File file : files) { if (file.isDirectory()) { depthFirstSearch(file, orderedList);
} else { orderedList.add(file);
}
}
} else { orderedList.add(topFile);
}
}
* 广度优先遍历文件夹
* p
* 要点:利用栈的先进后出的特点来实现。 *
* [@param](https://my.oschina.net/u/2303379) topFile
* [@param](https://my.oschina.net/u/2303379) orderedList
* [@param](https://my.oschina.net/u/2303379) maxNum
*/
public static void breadthFirstSearch(File topFile, ArrayList File orderedList, int maxNum) { if (null != topFile) { LinkedBlockingQueue File queue = new LinkedBlockingQueue File (maxNum);
queue.offer(topFile);
while (!queue.isEmpty()) { File file = queue.poll();
if (file.isDirectory()) { File[] files = file.listFiles();
for (File f : files) { if (f.isDirectory()) { queue.offer(f);
} else { orderedList.add(f);
}
}
} else { orderedList.add(file);
}
}
}
String path = C:\\Users\\jxn\\Desktop\\ 新建文件夹 (3)
File topFile = new File(path);
ArrayList File orderedList = new ArrayList ();
// depthFirstSearch(topFile,orderedList);
breadthFirstSearch(topFile, orderedList, 100);
orderedList.stream().forEach((x) - { System.out.println(x.getAbsoluteFile());
});
}
}
到此,相信大家对“Java 怎么遍历文件夹”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
正文完