黑马程序员技术交流社区
标题:
分享一个难倒很多人的题,复制整个文件夹内容。
[打印本页]
作者:
Troy123
时间:
2014-9-10 23:57
标题:
分享一个难倒很多人的题,复制整个文件夹内容。
public class copytest2{
static String url1 ="c://Hearthstone";
static String url2 ="c://folder1";
public static void main(String[] args)throws IOException{
System.out.println("正在拷贝......");
long start,end;
start = System.currentTimeMillis();
//创建目标文件夹
(new File(url2)).mkdirs();
//获取源文件夹下的文件或目录
File[] file = (new File(url1)).listFiles();
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
//复制文件
copyFile(file[i],new File(url2+"/"+file[i].getName()));
}
if(file[i].isDirectory()){
//复制目录
String sourceDir=url1+"/"+file[i].getName();
String targetDir=url2+"/"+file[i].getName();
copyDir(sourceDir,targetDir);
}
}
end= System.currentTimeMillis();
System.out.println("拷贝完成,用时"+(end-start)+"毫秒");
}
//复制文件
public static void copyFile(File sourceFile,File targetFile)throws IOException{
//建立带缓冲区的输入流对象
BufferedInputStream bufis = new BufferedInputStream(new FileInputStream(sourceFile));
//建立带缓冲区的输出流对象
BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream(targetFile));
int by = 0;
while((by=bufis.read())!=-1){
bufos.write(by);
}
bufis.close();
bufos.close();
}
//复制文件夹
public static void copyDir(String sourceDir,String targetDir)throws IOException{
//新建目标目录
(new File(targetDir)).mkdirs();
//获取源文件夹下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
//源文件
File sourceFile=file[i];
//目标文件
File targetFile=new File(new File(targetDir).getAbsolutePath()+"/"+file[i].getName());
copyFile(sourceFile,targetFile);
}
if(file[i].isDirectory()){
//准备复制的源文件夹
String dir1 = sourceDir+"/"+file[i].getName();
//准备复制的目标文件夹
String dir2 = targetDir+"/"+file[i].getName();
copyDir(dir1,dir2);
}
}
}
}
复制代码
作者:
zhxu188
时间:
2014-9-11 00:08
看看,学习了
作者:
戏言丶
时间:
2014-9-11 00:12
俺是来学习的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2