Java讀取指定文件夾下所有文件路徑

最近有一個合作的大型項目準備上線,需要羅列文件清單。爲了提高效率,決定編寫一個JAVA程序去讀取所有的文件路徑。寫入指定的文件中,代碼及測試截圖如下。將代碼copy到工程中啓動main方法直接測試即可。

package demoFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FilePath {
	public static void main(String[] args) {
		String desFiler="D:\\test\\bbb";
		String scrfiler="D:\\test\\aaaaa.txt";
		copyFile(scrfiler,desFiler);
	}
	private static void copyFile(String scrFile,String desFile) {
		String newFileName=scrFile.substring(scrFile.lastIndexOf("\\")+1);
		System.out.println(newFileName);
		desFile=desFile+File.separator+newFileName;
		System.out.println(desFile);
		try {
			FileInputStream fis=new FileInputStream(scrFile);
			FileOutputStream fos=new FileOutputStream(desFile);
			byte[] datas=new byte[1024*8];
			int len=0;
			while((len=fis.read(datas))!=-1){
				 fos.write(datas,0,len);
			}
			fis.close();
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}
package demoFile;

import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;

public class FileGetPath {
	public static void main(String[] args) {
		try {
		ArrayList<String> listFileName=new ArrayList<String>();
		getFileName("D:\\test\\", listFileName); 	//需要讀取的文件位置
		String desFile="D:\\test1\\bcc.txt";		//輸出文件的位置
		PrintWriter pw=new PrintWriter(desFile);
		for (String name : listFileName) {
			if(name.contains(".txt")||name.contains(".class")){	//文件類型
				System.out.println(name);
				pw.println(name);
			}
		}
		pw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void getFileName(String path,ArrayList<String> listFileName){
		File file =new File(path);
		File[] files=file.listFiles();
		String[] names= file.list();
		if(names!=null){
			String[] completName= new String[names.length];
			for(int i=0;i<names.length;i++){
				completName[i]=path+names[i];
			}
			listFileName.addAll(Arrays.asList(completName));
		}
		for (File a : files) {
			if(a.isDirectory()){ 				//判斷有子文件
				getFileName(a.getAbsolutePath()+"\\", listFileName);
			}
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章