Java使用File類復制全部文件及文件夾


程序思路:

  1. 創建目標目錄
  2. 將文件目錄下的子文件和子目錄遍歷
  3. 如果是子文件,通過創建IO流直接復制,如果是子目錄,遍歷子目錄使用遞歸方法復制

使用方法:

  • boolean mkdir()//創建文件夾
  • File[] listFiles()//返回指定文件目錄下的一級子文件和子目錄的文件類數組
  • boolean isFile()//判斷是否含子文件
  • boolean isDirectory()//判斷是否含子目錄
  • String getName()//返回文件名字符串
  • String getPath()//返回文件路徑
 1 public class ioFile {
 2     public static void main(String[] args) {
 3         File file1 = new File("D:/exercise");
 4         File file2 = new File("C:/"+file1.getName());
 5         file2.mkdir();
 6         fileCopy(file1,file2);
 7     }
 8     public static void fileCopy(File file1,File file2){
 9         File[] files1 = file1.listFiles();
10         for (int i = 0; i < files1.length; i++) {
11             if (files1[i].isDirectory()){
12                 String s = files1[i].getName();
13                 File file = new File(file2.getPath()+"/"+s);
14                 file.mkdir();
15                 fileCopy(files1[i],file);
16             }else if (files1[i].isFile()){
17                 String s = files1[i].getName();
18                 BufferedReader br = null;
19                 BufferedWriter bw = null;
20                 try {
21                     br = new BufferedReader(new InputStreamReader(new FileInputStream(files1[i].getPath()+"")));
22                     bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file2.getPath()+"/"+s)));
23                     String t;
24                     while(true){
25                         if ((t=br.readLine())!=null){
26                             bw.write(t);
27                         }else{
28                             break;
29                         }
30                     }
31 
32                 } catch (Exception e) {
33                     e.printStackTrace();
34                 } finally {
35                     if (br!=null){
36                         try {
37                             br.close();
38                         } catch (IOException e) {
39                             e.printStackTrace();
40                         }
41                     }if (bw!=null){
42                         try {
43                             bw.close();
44                         } catch (IOException e) {
45                             e.printStackTrace();
46                         }
47                     }
48                 }
49             }
50         }
51     }
52 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM