#日常練習
程序可以根據指定目錄及指定擴展名(文件名)來產生一個關於文件索引的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);
}
}