一个Java复制目录的方法(递归)

 1     /**
 2      * 将目标目录复制为指定目录(也可以用于复制文件)
 3      * @param src 源路径
 4      * @param dest 目标路径
 5      * @throws IOException
 6      */
 7     public static void copyDir(File src, File dest) throws IOException {
 8         if(!src.exists()) {        // 检查源路径是否存在
 9             System.out.println("源目录不存在!");
10         } else if(src.isFile()) {    // 如果源路径是一个文件
11             if(dest.isDirectory()) {
12                 // 不能将文件复制为一个目录
13                 System.out.println("目标路径不是一个文件!");
14             }else {
15                 // 复制文件
16                 FileInputStream fis = new FileInputStream(src);
17                 FileOutputStream fos = new FileOutputStream(dest);
18                 byte[] arr = new byte[1024 * 8];
19                 int len;
20                 while((len = fis.read(arr)) != -1) {
21                     fos.write(arr, 0, len);
22                 }
23                 fis.close();
24                 fos.close();
25             }
26         } else {    // 如果源路径是一个目录
27             if(dest.isFile()) {
28                 // 不能将目录复制为一个文件
29                 System.out.println("目标路径不是一个目录!");
30             } else {
31                 // 先检查目标是否存在, 不存在则创建
32                 if(!dest.exists()) {
33                     dest.mkdirs();
34                 }
35                 // 如果目标路径是一个目录, 递归调用本方法进行复制
36                 // 获取源目录的子文件/目录
37                 String[] subFiles = src.list();
38                 // 遍历源目录进行复制
39                 for (String subFile : subFiles) {
40                     copyDir(new File(src, subFile), new File(dest, subFile));
41                 }
42             }
43         }
44     }
45
46 /**
47      * 测试代码
48      * @param args
49      * @throws IOException
50      */
51     public static void main(String[] args) throws IOException {
52         Scanner sc = new Scanner(System.in);
53         System.out.println("请输入源路径:");
54         String src = sc.nextLine();
55         System.out.println("请输入目标路径:");
56         String dest = sc.nextLine();
57         copyDir(new File(src), new File(dest));
58     }
时间: 2024-08-08 13:56:10

一个Java复制目录的方法(递归)的相关文章

mac os intellij如何快路查看一个java类的所有方法,结构

如果是自己写的java类,点击点击导航的project-setting-show members 如果是系统库的,点击structure 再点一下lib中的类,或者快捷键 command+F12

java移动文件夹、 慎用java file.renameTo(f)方法 、 java从一个目录复制文件到另一个目录下 、 java代码完成删除文件、文件夹 、

java移动文件夹(包含子文件和子文件夹): http://blog.csdn.net/yongh701/article/details/45070353 慎用java    file.renameTo(f)方法: http://www.cnblogs.com/mrwangblog/p/3934506.html 注意看结果,从C盘到E盘失败了,从C盘到D盘成功了.因为我的电脑C.D两个盘是NTFS格式的,而E盘是FAT32格式的.所以从C到E就是上面文章所说的"file systems"

一个Java递归删除目录的方法

1 public static void delDir(File f) { 2 // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空. 3 if(f.isDirectory()) { 4 // 获取子文件/目录 5 File[] subFiles = f.listFiles(); 6 // 遍历该目录 7 for (File subFile : subFiles) { 8 // 递归调用删除该文件: 如果这是一个空目录或文件, 一次递归就可删除. 如果这是一个

Java之File类及递归树形展示目录_20150804

Java之File类及递归树形展示目录 20150804 下面的构造函数可以用来生成File 对象: File(String directoryPath)          File(String directoryPath, String filename)          File(File dirObj, String filename) 这里,directoryPath是文件的路径名,filename 是文件名,dirObj 一个指定目录的File 对象.下面的例子创建了三个文件:f1

Java中方法递归与File例题

1.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?(不死神兔)(1)数组方式 package 递归.作业; public class TuziArray { public static void main(String[] args) { //定义数组 int arr[] = new int[100]; int m=20; arr[1] = 1;//前两个月兔子数量为1只 arr[2] = 1; arr[3

计算一个目录文件大小方法

<?php $dirfile='../hnb'; /** *计算一个目录文件大小方法 *$dirfile:传入文件目录名 **/ function dirSize($dirfile) { $dir_size=0; if($handle[email protected]opendir($dirfile)) { while($filename=readdir($handle)) { if($filename!='.' && $filename!='..') { $subfile=$dir

Java parseInt_使用此方法得到的原始数据类型的一个特定的字符串

Java parseInt解释加方法示例 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个 java parseInt()                       语法:   static int parseInt(String s)                             static int parseInt(String s, int radix)                      参数:String s

Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安 全生产”的抽象方法:abstract void safetyInProduction() (

一个java文件中可包含多个main方法

java中的main方法是java应用程序的入口,java程序在运行时,首先调用执行main方法.但并不是说java中只能有一个main方法,不同类中都可以包含main方法.当JVM进行编译时,会提示选择其中一个main方法作为编译的入口.