자바 폴 더(하위 폴 더,하위 파일 포함)의 복사-재 귀적 실현

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 }

좋은 웹페이지 즐겨찾기