黑马程序员---IO文件列表

获取文件列表:

package com.mth.listRoots;

import java.io.File;
import java.io.FilenameFilter;

/**
 * 
 * @ClassName: ListRootsTest
 * @Description: listRoots
 * @author mth 75100313@qq.com
 * @date 2014-2-19 上午08:30:24
 *  String[] list()
 *  String[] list(FilenameFilter filter)
 *  File[] listFiles()
 *  static File[] listRoots()    
 */
public class FileListTest {

	public static void listRoots() {
		File file = new File("");
		File[] farray = file.listRoots();

		for (File file2 : farray) {
			System.out.println(file2);
		}
	}

	/**
	 * 调用list方法的file对象必须是一个目录 该目录必须存在
	 */
	public static void list_1() {
		File file = new File("e:/");
		String[] farray = file.list();
		for (String file2 : farray) {
			System.out.println(file2);
		}
	}

	/*
	 * list(FilenameFilter filter)
	 * 返回指定目录下面指定的文件或目录
	 */
	public static void list_2() {
		//要被过滤的目录
		File file = new File("e:/");
		String[] farray = file.list(new FilenameFilter() {

			@Override
			public boolean accept(File dir, String name) {
//				System.out.println("dir:"+dir+"        name:"+name);
				return name.endsWith(".txt");
			}
		});
		for (String file2 : farray) {
			System.out.println(file2);
		}
	}

	public static void main(String[] args) {
		// listRoots();
		list_2();
	}

}


列出所有文件:

package com.mth.listallfile;

import java.io.File;

/**
 * 
 * @Title: listAllFile
 * @Description: 递归遍历目录下所有文件(目录下的目录)
 * 				  因为目录中还有目录 只要使用同一个列出目录功能的函数完成即可
 * 				  也就是函数调用自身 这种表现形式或者编程手法 叫做递归 
 * 				 递归要注意的几点:
 * 					1.限定结束条件
 * 					2.注意递归的次数 尽量避免内存溢出
 * @param @param file 设定文件
 * @return void 返回类型
 * @throws
 */
public class ListAllFile {
	
	
	
	/*
	 *	递归 
	 * */
	public static void listAllFile(File file) {
		File[] array = file.listFiles();
		for (File file2 : array) {
			if (file2.isDirectory()) {
				//输出目录
				System.out.println(file2);
				listAllFile(file2);
			} else {
				System.out.println(file2);
			}
		}
	}

	public static void main(String[] args) {
		File file = new File("E:/游戏/游戏/软件");
		listAllFile(file);
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值