Java 递归遍历组织树

来源:互联网 发布:全民枪战怒龙改38数据 编辑:程序博客网 时间:2024/06/14 01:34

给定目录,遍历所有子目录

import java.io.File;public class Test {    // 文件所在的层数      private int fileLevel;      /**      * 生成输出格式      * @param name 输出的文件名或目录名      * @param level 输出的文件名或者目录名所在的层次      * @return 输出的字符串      */      public String createPrintStr(String name, int level) {              // 输出的前缀              String printStr = "";              // 按层次进行缩进              for (int i = 0; i < level; i ++) {                      printStr  = printStr + "  ";              }              printStr = printStr + "- " + name;              return printStr;      }      /**      * 输出初始给定的目录      * @param dirPath 给定的目录      */      public void printDir(String dirPath){              // 将给定的目录进行分割              String[] dirNameList = dirPath.split("\\\\");              // 设定文件level的base              fileLevel = dirNameList.length;              // 按格式输出              for (int i = 0; i < dirNameList.length; i ++) {                      System.out.println(createPrintStr(dirNameList[i], i));              }      }      /**      * 输出给定目录下的文件,包括子目录中的文件      * @param dirPath 给定的目录      */      public void readFile(String dirPath) {              // 建立当前目录中文件的File对象              File file = new File(dirPath);              // 取得代表目录中所有文件的File对象数组              File[] list = file.listFiles();              // 遍历file数组              for (int i = 0; i < list.length; i++) {                      if (list[i].isDirectory()) {                              System.out.println(createPrintStr(list[i].getName(), fileLevel));                              fileLevel ++;                              // 递归子目录                              readFile(list[i].getPath());                              fileLevel --;                      } else {                              System.out.println(createPrintStr(list[i].getName(), fileLevel));                      }              }      }      public static void main(String[] args) {              Test rd = new Test();              String dirPath = "E:\\BaiduYunDownload";              rd.printDir(dirPath);              rd.readFile(dirPath);      }  }  

给定一级目录 遍历所有子目录 返回拼接字符串

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class getChildOrgidUtil {    private int level;//部门层级    /**     * 传入一级部门orgid 查询所有子部门的orgId     * @param orgId parentOrgId     * @return AllChildrenOrgId     */    public String  getOrgId(String orgId){        StringBuilder sBuilder = new StringBuilder();        //获取一级目录下的二级目录        List<Map<String, String>> list = this.getNextOrgId(orgId);        //遍历二级目录        for (int i = 0; i < list.size(); i++) {            String orgIdValue = list.get(i).get("ORGID");//二级目录Id            if((null != orgIdValue) && (!"".equals(orgIdValue))){                sBuilder.append("'" + orgIdValue + "',");                level++;                String str = getOrgId(orgIdValue);//三级目录四级目录Id等等                sBuilder.append(str);                level--;            }        }        return sBuilder.toString();    }    public List<Map<String, String>> getNextOrgId(String orgId){        List<Map<String, String>> list = new ArrayList<Map<String, String>>();        try{            String sql = " SELECT ORGID FROM T_BO_ORRELA WHERE REORGID = '"+orgId+"' WHERE STAT ='STAR'";//          CommonDao dao = new CommmonDao(); dao层            Map<String, String> map = new HashMap<String, String>();            map.put("ORGID", "ORGID");//          list = dao.queryBySql(sql, null, map, DaoFactory.getDataSource("").getConnection());        }catch(Exception e){            e.printStackTrace();        }        return list;    }}
原创粉丝点击