Java 輸出某路徑下的所有檔案

weixin_34007886發表於2018-09-10

因為是檔案相關的操作 所以一定會用到File
這個是比較簡單的一個例子.

首先說一些file.list和file.listFiles的區別

  • file.list返回的是String,路徑下的檔名稱
  • file.listFiles返回的是file物件,返回的就是檔案.

通俗的講就是list返回的事不帶路徑的 例如 test
而listFiles返回的是 D://test

新建一個FileUtils類,寫用來輸出檔案的方法

package com.emp.io;

import java.io.File;
import java.io.IOException;


/**
 * @author employeeeee
 * @date 2018/9/10 14:12
 *
 * 列出File的一些常用操作比如過濾 遍歷
 */


public class FileUtils {

    /*
    * 列出指定目錄下(包括其子目錄的所有檔案)
    *
     */

    public static  void  listDirectory(File dir) throws IOException{
        if(!dir.exists()){

            throw  new IllegalArgumentException("目錄:"+dir+"不存在");
        }
        if(!dir.isDirectory()){

            throw new  IllegalArgumentException(dir+"不是目錄");

        }
    /*    String[] filenames = dir.list();
        for (String string:filenames){
            System.out.println(dir+"\\"+string);
        }*/

        //如果要遍歷子目錄下的內容就需要構造成File物件做遞迴操作.File提供了直接返回物件的API

        File[] files = dir.listFiles();
       if (files!=null&&files.length>0){
           for (File file:files){
               if (file.isDirectory()){
                   //遞迴
                   listDirectory(file);
               }else {
                   System.out.println(file);
               }

           }

       }

        
    }


}


然後寫一個測試類 測試一下

package com.emp.io;

        import java.io.File;
        import java.io.IOException;

/**
 * @author 周子淏
 * @Description: 
 * @date 2018/9/10 16:04
 * @params  * @param null
 */
public class FileUtilTest1 {

    public static void main(String[] args) throws IOException {
        FileUtils.listDirectory(new File("D:\\devinstall"));

    }
}

相關文章