/*
* 写一个用于列出文件目录的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();
}
}
}
}
* 写一个用于列出文件目录的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();
}
}
}
}