package com.obcy; import java.io.*; import java.util.Scanner; public class Search { private static Search search = new Search(); private String source = "" ; private String target = ""; private String type = ""; public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入你要遍歷的目錄(絕對路徑)"); search.source = sc.nextLine(); System.out.println("請輸入你要挑選的文件類型(文件後綴名)"); search.type = sc.nextLine(); System.out.println("你要將這種類型的文件複製到哪(結對路徑)"); search.target = sc.nextLine(); System.out.println("startting"); getAllPath(new File(search.source)); } //此功能遍歷allpath集合,並把string對象拆分,取到所有的文件類型 private static String getPathTail(String filename) { String[] split = filename.split("\\."); return split[split.length-1]; } //複製文件方法 public void cp(String input,String output) throws IOException { File in = new File(input) ; File dir = new File(output); if(!dir.exists()){ if(dir.mkdirs()){ System.out.println("已創建目錄"+dir.getAbsolutePath()); }else{ System.out.println("目錄創建失敗"); return; } } System.out.println(in.getName()+"正在複製"); File out = new File(dir,in.getName()); FileInputStream fin = new FileInputStream(in); FileOutputStream fout = new FileOutputStream(out); BufferedInputStream bfin = new BufferedInputStream(fin); BufferedOutputStream bfout = new BufferedOutputStream(fout); int len = 0; byte[] bt = new byte[4096]; while ((len = fin.read(bt))!=-1){ fout.write(bt,0,len-1); } System.out.println(in.getName()+"複製完成"); fin.close(); fout.close(); bfin.close(); bfout.close(); } //遞歸遍歷到文件夾下所有的文件,並存儲到ArrayList數組內 private static void getAllPath(File path) { if (path.exists()) { //判斷路徑是否存在 if (path.isFile()) { //判斷是不是文件,是的話,得到其文件名。不是的話,就是目錄 String absolutePath = path.getAbsolutePath(); String tail = getPathTail(absolutePath); //獲取文件類型 if(search.type.equals(tail)){ try { search.cp(absolutePath,search.target); } catch (IOException e) { e.printStackTrace(); } } }else{ File[] files = path.listFiles(); //得到目錄下所有的Fiel列表 if (files!=null) { //如果目錄列表不爲零,遞歸操作此列表裏所有路徑 for (File file : files) { getAllPath(file); } } } }else{ System.out.println("文件路徑不存在"); } } }
挑選盤裏所有的相同後綴文件複製出來
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.