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");
}
}