最近有一個合作的大型項目準備上線,需要羅列文件清單。爲了提高效率,決定編寫一個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);
}
}
}
}