一個簡單的實現複製檔案並修改副檔名的小程式
阿新 • • 發佈:2019-01-27
之前在一家公司上班的時候,由於公司電腦裝了加密軟體,自己平時寫的文件什麼的拿不出公司,但加密軟體對部分型別檔案並不加密,所以我就想到了修改檔案型別的辦法解決了這個問題。
下面是程式的實現。
package com.luhy.filetool; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CopyFileAndAlterSuffix{ /** * 修改資料夾下指定型別檔案並修改指定副檔名 */ public static boolean copy(String sourceFileCatalog, String targetFileCatalog, String prefix,String suffix) { File in = new File(sourceFileCatalog); File out = new File(targetFileCatalog); if (!in.exists()) { System.out.println(in.getAbsolutePath() + "原始檔路徑錯誤!!!"); return false; } else { System.out.println("原始檔路徑" + in.getAbsolutePath()); System.out.println("目標路徑" + out.getAbsolutePath()); } if (!out.exists()) out.mkdirs(); File[] file = in.listFiles(); FileInputStream fin = null; FileOutputStream fout = null; for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { try { fin = new FileInputStream(file[i]); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("in.name=" + file[i].getName()); try { String fileName = file[i].getName().replace("."+prefix, "." +suffix ); fout = new FileOutputStream(new File(targetFileCatalog + File.separator + fileName)); System.out.println(targetFileCatalog + File.separator + file[i].getName()); System.out.println(file[i]); System.out.println(file[i].getName()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(targetFileCatalog); int c; byte[] b = new byte[1024 * 5]; try { while ((c = fin.read(b)) != -1) { fout.write(b, 0, c); System.out.println("複製檔案中!"); } fin.close(); fout.flush(); fout.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // return true; } else copy(sourceFileCatalog + "/" + file[i].getName(), targetFileCatalog + "/" + file[i].getName(),prefix,suffix); } return false; } public static void main(String[] args) { CopyFileAndAlterSuffix.copy("f:\\a", "f:\\b","data","java"); System.out.println("END"); } }