1. 程式人生 > >Java 遍歷某個目錄

Java 遍歷某個目錄

import java.io.File;
import java.io.IOException;
 
public class DirErgodic {

    public static void find(String pathName) throws IOException{
            
        //獲取pathName的File物件     
        File dirFile = new File(pathName);
        
        //判斷該檔案或目錄是否存在,不存在時在控制檯輸出提醒
        if (!dirFile.exists()) {
            System.out.println("do not exit");
            return ;
        }
        
        //判斷如果不是一個目錄,就判斷是不是一個檔案,時檔案則輸出檔案路徑
        if (!dirFile.isDirectory()) {
            if (dirFile.isFile()) {
                System.out.println(dirFile.getCanonicalFile());
            }
            return ;
        }
        
        //獲取此目錄下的所有檔名與目錄名
        String[] fileList = dirFile.list();
        
        for (int i = 0; i < fileList.length; i++) {
            
            //遍歷檔案目錄
            String string = fileList[i];
            
            //File("documentName","fileName")是File的另一個構造器
            File file = new File(dirFile.getPath(),string);
            
            String name = file.getName();
            
            //如果是一個目錄,輸出目錄名後,進行遞迴
            if (file.isDirectory()) {
                System.out.println(name);
                //遞迴
                find(file.getCanonicalPath());
                
            }else {
                
                //如果是檔案,則直接輸出檔名
                System.out.println(name);
            }               
        }
                
    }
    
    public static void main(String[] args) throws IOException {
        
        find("C:\\Program Files (x86)\\Baidu\\update");
    }

}