一个Java复制目录的方法(递归)
/**
* 将目标目录复制为指定目录(也可以用于复制文件)
* @param src 源路径
* @param dest 目标路径
* @throws IOException
*/
public static void copyDir(File src, File dest) throws IOException {
if(!src.exists()) { // 检查源路径是否存在
System.out.println("源目录不存在!");
} else if(src.isFile()) { // 如果源路径是一个文件
if(dest.isDirectory()) {
// 不能将文件复制为一个目录
System.out.println("目标路径不是一个文件!");
}else {
// 复制文件
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
byte[] arr = new byte[1024 * 8];
int len;
while((len = fis.read(arr)) != -1) {
fos.write(arr, 0, len);
}
fis.close();
fos.close();
}
} else { // 如果源路径是一个目录
if(dest.isFile()) {
// 不能将目录复制为一个文件
System.out.println("目标路径不是一个目录!");
} else {
// 先检查目标是否存在, 不存在则创建
if(!dest.exists()) {
dest.mkdirs();
}
// 如果目标路径是一个目录, 递归调用本方法进行复制
// 获取源目录的子文件/目录
String[] subFiles = src.list();
// 遍历源目录进行复制
for (String subFile : subFiles) {
copyDir(new File(src, subFile), new File(dest, subFile));
}
}
}
} /**
* 测试代码
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入源路径:");
String src = sc.nextLine();
System.out.println("请输入目标路径:");
String dest = sc.nextLine();
copyDir(new File(src), new File(dest));
}
一个Java复制目录的方法(递归)的更多相关文章
- Java复制目录/子目录/文件
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- mac os intellij如何快路查看一个java类的所有方法,结构
如果是自己写的java类,点击点击导航的project-setting-show members 如果是系统库的,点击structure 再点一下lib中的类,或者快捷键 command+F12
- c 结构体 & 函数指针模拟实现一个java class(类) 和方法
闲来无事,纯粹练习. student.h #ifndef STUDENT_H_INCLUDED #define STUDENT_H_INCLUDED #include <memory.h> ...
- java复制图片实现方法
原图片路径:srcpic 目的图片路径:despic public static void copyPic(String srcpic, String despic){ File file1=new ...
- 如何唯一确定一个 Java 类?
今天偶然想起之前和朋友讨论过的一个问题:如何唯一确定一个 Java 类?我相信大多数朋友遇到这个问题的回答都是:类的全路径呗.但事实上,唯一确定一个 Java 类,单单靠类路径是不够的,还要多加上一个 ...
- 一个Java递归删除目录的方法
public static void delDir(File f) { // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空. if(f.isDirectory() ...
- Java: 复制文件最快方法
利用Java复制文件到处都可以用到,这里总结了一个类供大家参考.里面总共有两个方法: public static boolean copyFile(String srcFileName, String ...
- Java连载30-方法重载、方法递归
一.方法重载 1.又被称为overload 2.方法重载使用场景 功能类似的时候,尽可能仍方法名相同(但是功能不同或者不相似的时候,方法名尽量不同) 3.什么条件满足之后,可以构成方法重载 (1)在同 ...
- Java parseInt_使用此方法得到的原始数据类型的一个特定的字符串
Java parseInt解释加方法示例 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个 java parseInt ...
随机推荐
- Spring MVC简介
Spring MVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC ...
- DISCUZ官方论坛模仿开发日志(二)
接上一次日志:http://www.cnblogs.com/gcs1995/p/4091159.html 从上次写下项目简要分析到现在差不多两个月时间了,这两个月时间学习了很多新技术: 数据库技术: ...
- PHP 知识结构
- android JNI开发
1.NDK简介 NDK(Native Development Kit)NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.NDK集成了交叉 ...
- 使用input range滑块,控制元素transform rotate旋转样式
<!DOCTYPE html> <html> <head> </head> <body> <!-- 第一步:设置div旋转对象和inp ...
- Python网络连接
import appuifw as ui import httplib from os import abort uia=ui.app uin=ui.note uiq=ui.query e32=ui. ...
- python类中super()和__init__()的区别
class Base(object): def __init__(self): print 'Base create' class childB(Base): def __init__(sel ...
- cocoapod集成失败,无法找到头文件的解决办法
在终端更新pod的时候,提示警告: target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support ...
- java selenium (十三) 智能等待页面加载完成
我们经常会碰到用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作. 否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后, 才能操 ...
- [原创]C#引用C++编译的dll
一.DllImportAttribute 1.属性介绍 using System; using System.Reflection; using System.Security; namespace ...