public class Test4 {
private static long totalSize = 0;
public static void main(String...args) throws IOException{
File f1 = new File("E:\\TDDOWNLOAD");
File f2 = new File("E:\\TDDOWNLOAD2");
long start = System.currentTimeMillis();
copy(f1, f2);
long end = System.currentTimeMillis();
System.out.println("拷贝总大小:"+totalSize*1.0/1024/1024+"(MB), time: "+(end-start));
}
public static void copy(File f1, File f2) throws IOException{
//如果目标不是目录,直接退出
if(!f2.isDirectory()){
return ;
}
//源文件是目录,循环所有子文件
if(f1.isDirectory()){
File[] subFiles = f1.listFiles();
for(int i=0;i<subFiles.length;i++){
String newFileName = f2.getPath()+"/"+subFiles[i].getName();
File newFile = new File(newFileName);
//子文件是目录则递归拷贝
if(subFiles[i].isDirectory()){
if(!newFile.exists()){
newFile.mkdir();
}else{
}
copy(subFiles[i], newFile);
}else{//子文件是文件,则直接拷贝
copy(subFiles[i],f2);
}
}
}else{//源文件是文件直接拷贝
String newFileName = f2.getPath()+"/"+f1.getName();
File newFile = new File(newFileName);
//是否覆盖拷贝
/*if(newFile.exists()){
return ;
}*/
newFile.createNewFile();
FileInputStream fis = new FileInputStream(f1);
BufferedInputStream bis = new BufferedInputStream(fis, 8192);
FileOutputStream fos = new FileOutputStream(newFileName);
BufferedOutputStream bos = new BufferedOutputStream(fos,8192);
byte[] b = new byte[8192];
int count = -1;
while((count=bis.read(b))!=-1){
totalSize+=count;
bos.write(b,0,count);
}
bis.close();
bos.close();
fis.close();
fos.close();
}
}
}
分享到:
相关推荐
由于项目需求,写了个递归拷贝目录下全部文件的demo,并且显示进度,如果子目录不存在则创建。欢迎下载!
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...
java-byby-demo 定时递归复制文件Java脚本,包括源代码,文档和Shell脚本。 定时递归拷贝文件的Java脚本,内附原始文件,文档和shell脚本。
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...
Java虚拟机(JVM)面试题(总结最全面的面试题!!!) 文章目录Java内存模型我们开发人员编写的Java代码是怎么让电脑认识的为什么说java是跨平台语言Jdk和Jre和JVM的...深拷贝和浅拷贝Java会存在内存泄漏吗?请说 收
删除文件夹,递归删除目录下的所有文件及子目录下所有文件,函数名:getFile 作用:使用递归,输出指定文件夹内的所有文件 参数:path:文件夹路径 前置空格缩进,显示文件层次结构,通过文件名称获取导入文件到temp...
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 ...
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 ...
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 ...
实现从ftp服务器某一目标文件夹开始入口,扫描所有子文件夹和子文件夹下的文件,如果存在文件,则拷贝至本地某目录下,并删除FTP服务器上该文件。如果不存在文件,则删除该文件夹,但是入口目标文件夹不删除。
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。...
递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object Oriented Programming) 53 面向对象编程的...
拷贝数组 80 内容总结 83 独立实践 84 第六章:继承 86 学习目标: 86 单继承(single inheritance) 87 访问控制 89 方法重载(method overloading) 91 方法覆盖(method overriding) 93 基于继承的多态实现 94 隐藏...
简介:这份资源是我以前偶然...递归,拷贝一个目录或者文件到指定路径下,简单的txt转换xml,字母排序(A-Z)(先大写,后小写),列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤,字符串匹配的算法,写入日志。
Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。...