用于列出文件目录的java实用小程序,方便文件查找

/*
 * 写一个用于列出文件目录的java实用小程序,方便文件查找
 */
/*
 * 思路:
 * 1.递归指定的目录
 * 2.记录递归过程中每个文件的路径(以.java文件为例)
 * 3.将所访问到的文件路径存储到集合中
 * 4.将集合打印到文本文件中
 */


package filelist;


import java.io.*;
import java.util.*;




public class FileListTest {


public static void main(String[] args) {

File dir = new File("C:\\Users\\Administrator\\Desktop\\14年-秋"); //要列表的目录,注意绝对路径和相对路径的差异
List<File> list = new ArrayList<File>(); //用于存储路径的集合

fileList(dir, list); //遍历目录记录路径

File desfile = new File(dir, "filelist.txt"); //将文件列表存储到当前目录下的filelist.txt文件下
toTxt(list, desfile);

System.out.println(list.size());


}

//递归遍历目录的方法 //参数dir父目录,list用于存储路径的集合
public static void fileList(File dir, List<File> list){
//得到的该目录下的所有文件
//注意listFiles方法的返回值,若dir为绝对路径则返回绝对路径,否则为相对路径
File[] files = dir.listFiles();

//遍历该目录下的文件
for(File file : files){
if(!file.isFile() && file.isDirectory()){ //非隐藏目录
fileList(file, list); //递归遍历子目录
}else{
if(file.getName().endsWith(".doc"))
list.add(file); //添加文件
}
}


}

//将集合中的路径打印到文本文件中 //参数list存储路径的集合,
public static void toTxt(List<File> list, File desfile) {
//字符缓冲区
BufferedWriter bufw = null;

try {
bufw = new BufferedWriter(new FileWriter(desfile));

//遍历集合,将集合中的内容写出
for(File file : list){
bufw.write(file.toString());
bufw.newLine();
bufw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件写失败");
e.printStackTrace();
} finally {
try {
if(bufw != null)
bufw.close();
} catch (IOException ioe) {
System.out.println("文件关闭失败");
throw new RuntimeException();
}
}
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值