1 import java.io.*; 2 3 public class MainCopy { 4 5 private int directoryCount = 0; 6 private int fileCount = 0; 7 private int replayCount = 0; 8 private int alreadyCount = 0; 9 10 public void findFile(String inPath, final String outPath) { 11 File file = new File(inPath); 12 if (file.isDirectory()) { 13 directoryCount++; 14 File[] files = file.listFiles(); 15 for (final File f : files) { 16 if (f.isDirectory()) { 17 directoryCount++; 18 new Thread() { 19 public void run() { 20 } 21 }.start(); 22 findFile(f.getPath(), outPath); 23 } 24 if (f.isFile()) { 25 fileCount++; 26 if (f.getName().endsWith(".mp3")) { 27 File newFile = new File(outPath + "/" + f.getName()); 28 if (newFile.exists()) { 29 replayCount++; 30 System.out.println("file is exist" + f.getPath()); 31 } else { 32 synchronized (newFile) { 33 writeToFile(f, newFile); 34 } 35 alreadyCount++; 36 System.out.println("copy :" + f.getPath()); 37 } 38 } else { 39 System.out 40 .println("---------------------------------------other file type:" 41 + f.getName()); 42 } 43 } 44 } 45 } 46 } 47 public void writeToFile(File in, File out) { 48 FileInputStream fis = null; 49 FileOutputStream fos = null; 50 try { 51 fis = new FileInputStream(in); 52 fos = new FileOutputStream(out); 53 byte[] buffer = new byte[1024]; 54 int len = 0; 55 while ((len = fis.read(buffer)) > 0) { 56 fos.write(buffer, 0, len); 57 } 58 fos.close(); 59 fis.close(); 60 } catch (FileNotFoundException e) { 61 e.printStackTrace(); 62 } catch (IOException e) { 63 e.printStackTrace(); 64 } 65 } 66 public static void main(String[] args) { 67 MainCopy c = new MainCopy(); 68 long startTime = System.currentTimeMillis(); 69 c.findFile("D:/31-60", "D:/E_pod"); 70 System.out.println(c.directoryCount); 71 System.out.println(c.fileCount); 72 System.out.println(c.alreadyCount); 73 long endTime = System.currentTimeMillis(); 74 System.out.println("time count:"+(endTime-startTime)+"ms"); 75 } 76 }
import java.io.*; public class MainCopy { private int directoryCount = 0; private int fileCount = 0; private int replayCount = 0; private int alreadyCount = 0; public void findFile(String inPath, final String outPath) { File file = new File(inPath); if (file.isDirectory()) { directoryCount++; File[] files = file.listFiles(); for (final File f : files) { if (f.isDirectory()) { directoryCount++; new Thread() { public void run() { } }.start(); findFile(f.getPath(), outPath); } if (f.isFile()) { fileCount++; if (f.getName().endsWith(".mp3")) { File newFile = new File(outPath + "/" + f.getName()); if (newFile.exists()) { replayCount++; System.out.println("file is exist" + f.getPath()); } else { synchronized (newFile) { writeToFile(f, newFile); } alreadyCount++; System.out.println("copy :" + f.getPath()); } } else { System.out .println("---------------------------------------other file type:" + f.getName()); } } } } } public void writeToFile(File in, File out) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(in); fos = new FileOutputStream(out); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { MainCopy c = new MainCopy(); long startTime = System.currentTimeMillis(); c.findFile("D:/31-60", "D:/E_pod"); System.out.println(c.directoryCount); System.out.println(c.fileCount); System.out.println(c.alreadyCount); long endTime = System.currentTimeMillis(); System.out.println("time count:"+(endTime-startTime)+"ms"); } }