javase复制文件夹

Posted 艺海浮台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javase复制文件夹相关的知识,希望对你有一定的参考价值。

 1 package com.copyfile;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 
 9 import org.junit.Test;
10 
11 public class FileTraverse {
12 
13     public static void main(String[] args) {
14         // TODO Auto-generated method stub
15         String file = "E:\\大数据资料\\视频\\01_十八掌教育_徐培成_大数据零基础教程\\01-Java基础\\Java基础第01天\\02-Java简介-DOS命令.avi";
16         reverse(file);
17         copyDir("D:\\arch", "e:\\arch");
18     }
19 
20     /**
21      * 打印输出目录结构
22      * 
23      * @param file
24      */
25     public static void reverse(String file) {
26         File dir = new File(file);
27         if (dir.exists()) {
28             System.out.println(dir.getAbsolutePath());
29             if (dir.isDirectory()) {
30                 File[] files = dir.listFiles();
31                 if (files != null && files.length > 0) {
32                     for (File f : files) {
33                         reverse(f.getAbsolutePath());
34                     }
35                 }
36             }
37         }
38     }
39 
40     /**
41      * 复制文件夹
42      */
43     public static void copyDir(String file, String destDir) {
44         File f = new File(file);
45         if (f.exists()) {
46             // 如果是目录
47             if (f.isDirectory()) {
48                 // 创建新的目录
49                 File newFile = new File(destDir, f.getName());
50                 newFile.mkdir();
51                 File[] files = f.listFiles();
52                 if (files != null && files.length > 0) {
53                     for (File ff : files) {
54                         copyDir(ff.getAbsolutePath(), newFile.getAbsolutePath());
55                     }
56                 }
57             } else {
58                 copyFile(file, destDir);
59             }
60         }
61     }
62 
63     // 复制文件
64     private static void copyFile(String srcfile, String destDir) {
65         try {
66             File file = new File(srcfile);
67             File newFile = new File(destDir, file.getName());
68             FileInputStream fis = new FileInputStream(file);
69             FileOutputStream fos = new FileOutputStream(newFile);
70             byte[] buf = new byte[1024];
71             int len = 0;
72             while((len=fis.read(buf)) != -1) {
73                 fos.write(buf, 0, len);
74             }
75             fis.close();
76             fos.close();
77         } catch (Exception e) {
78             // TODO Auto-generated catch block
79             e.printStackTrace();
80         }
81     }
82 
83     @Test
84     public void test() {
85         copyFile("D:\\arch", "e:\\arch");
86     }
87 }

 

以上是关于javase复制文件夹的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE-19.1.3IO流练习案例-复制多级文件夹

JavaSE-19.1.2IO流练习案例-复制单级文件夹

有趣的 C++ 代码片段,有啥解释吗? [复制]

javaSE_07_方法

JavaSE8基础 BufferedReader char[]方式读写实现复制粘贴txt文件

JavaSE8基础 BufferedReader readLine 整行读取实现复制粘贴txt文件