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

如题所述

我们要遍历所有的路径,需要使用到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=0;i<node;i++){ 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上添加节点,可以做到和资源管理器中一样的结构。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网