文件夹目录的循环遍历

作者: Cpder 分类: 杂七杂八 发布时间: 2009-10-06 13:01

    主要是对文件夹文件的循环遍历,利用了递归,以及文件与文件夹的判断,从而打印出文件夹内的所有结构。掌握文件夹基本操作以及对递归的掌握。
不说了,先上代码:

import java.io.*;

public class FolderDir {
	static long AllByte = 0;

	static void Dir(String path1) {
		try {
			File file = new File(path1);// 上层目录
//			System.out.println(path1);
			String list[] = file.list();
			// 遍历循环所有文件名称
			for (String string : list) {
				printBlank(file.getPath());
				System.out.println("|"+string);
				File newfile = new File(file.getPath() + "\" + string);// 下一层目录
				if (newfile.isDirectory()) { //
					Dir(newfile.getPath());
				} else {
					FileInputStream fis = new FileInputStream(newfile);
					AllByte = AllByte + fis.available();
					fis.close(); // 关闭输入流
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	static void printBlank(String path2) { // 根据其地址的长度计算出应该要打印空格的长度
		for (int i = 0; i < path2.length(); i++) {
			System.out.print(" ");
		}
	}

	public static void main(String[] args) {
		String path = "D:\Program Files";//所要遍历的文件夹
		System.out.println(path);
		Dir(path);
		System.out.println("文件夹" + path.substring(path.lastIndexOf("\") + 1)
				+ "大小为:" + AllByte + "字节");
	}
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Optimized by WPJAM Basic