1. 程式人生 > >關於文件的工具類例子

關於文件的工具類例子

16px style path 開始 ica font out for com

一 . 遞歸獲取當前路徑下的所有文件, 包含所有子文件夾下的文件:

package com.ncy.xx;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件查找
 * @author NCY
 *
 */
public class ListFiles {

    /**
     * @Title: getallfile
     * @Description: 獲取當前路徑下的所有文件
     * @author ruby
     * @return void 返回類型
     * @date 2018年1月4日 下午2:15:38 
@throws */ public static List<File> getallfile(String path) { List<File> allfilelist = new ArrayList<File>(); return getallfile(new File(path), allfilelist); } /** * @Title: getallfile * @Description: 獲取當前文件夾下的所有文件 * @author ruby *
@return void 返回類型 * @date 2018年1月4日 下午2:15:38 @throws */ public static List<File> getallfile(File file, List<File> allfilelist) { if (file.exists()) { //判斷文件是否是文件夾,如果是,開始遞歸 if (file.isDirectory()) { File f[] = file.listFiles();
for (File file2 : f) { getallfile(file2, allfilelist); } } else { allfilelist.add(file); } } return allfilelist; } public static void main(String[] args) { List<File> list = getallfile("D:\\z"); for (File file : list) { System.out.println(file.getCanonicalPath()); } } }

輸出為:

D:\z\zz\file\1.txt
D:\z\zz\file\2.txt
D:\z\zz\file\新建文件夾\1.txt
D:\z\zz\file\新建文件夾\2.txt
D:\z\zz\新建文件夾\1.txt
D:\z\zz\新建文件夾\2.txt

二 . 遞歸計算文件數量

package com.ncy.test;

import java.io.File;
/**
 * 遞歸計算文件數量
 * @author NCY
 *
 */
public class DirTest{

    public static int getCountFile(File file){
        if (file.isDirectory()) {
            int countFile = 0;
            File[] files = file.listFiles();
            for (File f : files) {
                countFile += getCountFile(f);
            }
            return countFile;
        }else if (file.isFile()) {
            return 1;
            
        }
        
        return 0;
    }
    
    public static void main(String[] args) {
        File file = new File("D:/z");
        int countFile = getCountFile(file);
        
        System.out.println(countFile);
    }
}

輸出為 :

6

關於文件的工具類例子