import java.io.File; public class Demo1 { public static void main(String[] args) { File dir=new File("D:\\CCC");//瀏覽F盤a資料夾下的所有內容 listFile(dir,""); } public static void listFile(File dir,String spance) { File[] files=dir.listFiles(); //列出所有的子檔案 for(File file :files) { if(file.isFile())//如果是檔案,則輸出檔名字 { System.out.println(spance+file.getName()); }else if(file.isDirectory())//如果是資料夾,則輸出資料夾的名字,並遞迴遍歷該資料夾 { System.out.println(spance+file.getName()); listFile(file,"|--"+spance);//遞迴遍歷 } } } }
解壓效果如下:
在專案中,往往會遇到,遍歷資料夾中的檔案,分清裡面配置檔案的父子關係,程式碼如下:
/** * 資料夾遍歷 * @param path * @throws Exception */ public void traverse(String path,String parent_id) throws Exception { System.out.println("path---->" + path); File file = new File(path); Map<String, Object> map = new HashMap<String, Object>(); if (file.exists()) { File[] files = file.listFiles(); if (files.length == 0) { System.out.println("資料夾是空的!"); return; } else { String k_id = UuidUtil.get32UUID(); for (File file2 : files) { if (file2.isFile()){//檔案 if (file2.getName().endsWith(".cfg")) { System.out.println("檔案:" + file2.getAbsolutePath()); map = readCfg(new FileInputStream(file2)); System.out.println("-------------"+file2.getAbsolutePath()+"--start-----------"); map.put("k", kvalue); parent_id = k_id; System.out.println("-------------"+file2.getAbsolutePath()+"--end-----------"); } } } for (File file2 : files) { if (file2.isDirectory()) {//資料夾 traverse(request,file2.getAbsolutePath(),parent_id); parent_id = k_id; } } } } else { System.out.println("檔案不存在!"); } }