자바 폴 더(하위 폴 더,하위 파일 포함)의 복사-재 귀적 실현
9081 단어 자바 구현
다음은 나의 실현 이 고 재 귀 를 사용 했다.
1 package com.simon.myfinal;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileOutputStream;
6 import java.io.InputStream;
7
8 /**
9 * Created by Rainmer on 2015/6/28.
10 */
11 public class FileCopy {
12 public static void main(String[] args) {
13 String oldPath = "D:/bower";
14 String newPath = "D:/bowerCopy";
15 File dirNew = new File(newPath);
16 dirNew.mkdirs();//
17 directory(oldPath, newPath);
18 System.out.println(" ");
19 }
20
21 /**
22 *
23 * @param oldPath
24 * @param newPath
25 */
26 public static void copyfile(String oldPath, String newPath) {
27 int hasRead = 0;
28 File oldFile = new File(oldPath);
29 if (oldFile.exists()) {
30 try {
31 FileInputStream fis = new FileInputStream(oldFile);//
32 FileOutputStream fos = new FileOutputStream(newPath);
33 byte[] buffer = new byte[1024];
34 while ((hasRead = fis.read(buffer)) != -1) {//
35 fos.write(buffer, 0, hasRead);//
36 }
37 fis.close();
38 } catch (Exception e) {
39 System.out.println(" !");
40 e.printStackTrace();
41 }
42 }
43 }
44
45 /**
46 *
47 * @param oldPath
48 * @param newPath
49 */
50 public static void directory(String oldPath, String newPath) {
51 File f1 = new File(oldPath);
52 File[] files = f1.listFiles();//listFiles
53 for (int i = 0; i < files.length; i++) {
54 if (files[i].isDirectory()) {
55 File dirNew = new File(newPath + File.separator + files[i].getName());
56 dirNew.mkdir();//
57 //
58 directory(oldPath + File.separator + files[i].getName(), newPath + File.separator + files[i].getName());
59 } else {
60 String filePath = newPath + File.separator + files[i].getName();
61 copyfile(files[i].getAbsolutePath(), filePath);
62 }
63
64 }
65 }
66 }