在java中如何遍历某个路径下的所有文件夹和文件

在java中如何遍历某个路径下的所有文件夹和文件,第1张

我们要遍历所有的路径,需要使用到java.io.File类,该类中有一个方法File[] listFiles()可以返回该文件下面所包含的所有子文件,String getPath()返回文件的全名称(包括路径),String getName()返回文件名。首先,我们先来遍历一下D盘根目录下所有的子文件:public static void fileList() { File file=new File("d:/")File[] files = file.listFiles()if (files != null) { for (File f : files) { System.out.println(f.getPath())} } }对此,我们肯定不满足,我们需要遍历D盘下所有的文件和文件夹,而不是根目录下的文件夹,这个时候我们需要使用到递归:public static void fileList(File file) { File[] files = file.listFiles()if (files != null) { for (File f : files) { System.out.println(f.getPath())fileList(f)} } }然后在主函数中调用:public static void main(String[] args) { File file=new File("d:/")fileList(file)}结果是不是能令你满意呢?显然,输出的都是全路径,我们可以对我们的递归函数做如下改进: public static void fileList(File file,int node) { node++File[] files = file.listFiles()if (files != null) { for (File f : files) { for(int i=0i<nodei++){ if(i==node-1){ System.out.print("├")} else{ System.out.print(" ")} } System.out.println(f.getName())fileList(f,node)} } }然后再次在主函数中调用:public static void main(String[] args) { File file=new File("d:/")fileList(file,0)}得到的结果是一个类似树状的结构,如果你对此还不满意,可以尝试给JTree上添加节点,可以做到和资源管理器中一样的结构。

java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中。 假设指定路径为path,目标集合为fileList,遍历指定路径下的所有文件,如果是目录文件则递归调用


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/283390.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存