A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//先来看看佳哥的做法,不得不说佳哥这递归控制变量增加制表符一般人是想不到的
public static void printDir(File dir,int n){
                        File[] subFile=dir.listFiles();
                        for (File file : subFile) {//---必须遍历操作.
                                for (int i = 0; i <=n; i++) {//--打印制表符
                                        System.out.print("\t");
                                }
                                System.out.println(file.getName());
                                if(file.isDirectory()){
                                        printDir(file,n+1);//n+1  不是n++  
                                }
                        }
        }


//哈哈接下来是我的做法 虽然是用递归 但我的层级是用字符串操作做的.
public static void allPath(File file) throws IOException{
                File[] fi=file.listFiles();
                for (File file2 : fi) {
                          {//截取(绝对路径长度-文件/文件夹名长度)替换为空格 +文件/文件夹名-------看着长 思路简单
                        System.out.println(file2.getAbsolutePath().substring(0,file2.getAbsolutePath().length()-file2.getName().length()).replaceAll(".", " ")+file2.getName());
                         if(file2.isDirectory())
                                allPath(file2);
                        }
                }
        }

//--------------大家可以交流一下各种奇葩的做法
//----------------走过路过不要错过 多多捧场!

1 个回复

倒序浏览
{ //截取(绝对路径长度-文件/文件夹名长度)替换为空格 +文件/文件夹名-------看着长 思路简单
我去 括号不小心剪切走了 是在if后的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马