#日常练习
程序可以根据指定目录及指定扩展名(文件名)来产生一个关于文件索引的txt文件,便于查找,有一定的实用性 ,提高查找文件的效率;
package FileDemo;
import java.io.BufferedWriter;
/**
*
*
* 程序可以根据指定目录及指定扩展名(文件名)
* 来产生一个关于文件索引的txt文件,便于查找,有一定的实用性 ,
* 提高查找文件的效率
* */
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class FileList {
/** 将list集合中的内容写入指定路径下(查找的路径) */
public static void writeToDisk(ArrayList<File> list,File dir) {
BufferedWriter bufw = null;
try {
bufw = new BufferedWriter(new FileWriter(dir.toString()));
for(File file:list) {
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
} catch (IOException e) {
throw new RuntimeException();
}finally {
try {
if(bufw != null) {
bufw.close();
}
}catch(IOException e) {
throw new RuntimeException();
}
}
}
/** 遍历指定目录来查找文件,在查找到时将文件存入list集合中 */
public static void fileToList(File dir, ArrayList<File> list) {
File files[] = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
fileToList(files[i], list);
} else {
//判断扩展名,是就加入集合中,不是就不进行操作,也可改成contains来判断文件名
if (files[i].getName().endsWith(".exe")) {
// System.out.println(files[i].getName());
list.add(files[i]);
}
}
}
}
public static void main(String[] args) {
// 注意字符转义
File dir = new File("F:\\test");
ArrayList<File> list = new ArrayList<File>();
fileToList(dir, list);
/** 写文件 */
File fileIndex = new File(dir,"文件索引.txt");
writeToDisk(list,fileIndex);
}
}