黑马程序员技术交流社区
标题:
复制文件夹
[打印本页]
作者:
湛添友
时间:
2014-5-18 22:13
标题:
复制文件夹
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
//复制一个带内容的文件夹
/*
* 我是思路是:先用递归的方法 获取文件夹中所有文件的路径名 存入集合中 然后再遍历集合的时候用流写入指定目录
*
*
* 这个方法我觉得好笨 有没有好一点的办法
*/
public class CopyDir {
public static void main(String args[]) throws IOException{
Copy c=new Copy();
c.copy("D:\\书\\吉他\\一百首高清初级弹唱谱,最简和弦", "D:\\abc");
}
}
class Copy{
public void copy(String dirName,String destPath) throws IOException{
File dir = new File(dirName);
File dest= new File(destPath);
if(!dest.exists())
{
System.out.print("目标路径不存在");
return;
}
if(!dir.exists()||(!dir.isDirectory())){
System.out.println("文件夹不存在或者不合法");
return;
}
List<String> list = new ArrayList<String>();
listFile(dir,list);
String pathName = dir.getName();
String s1 = dirName.substring(dirName.lastIndexOf("
\\")+1
);
// System.out.println(s1);
for(String s:list){
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(s));
String fileName=s.substring(s.lastIndexOf("
\\")+1
);
String s2 = s.substring(dirName.length());
String s3 = s2.substring(0,s2.lastIndexOf("\\"));
String s4=destPath+"
\\"+s1+s3
;
File destDir = new File(s4);
if(!destDir.exists()){
destDir.mkdirs();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(s4+"
\\"+fileName
));
int len = 0;
while((len=bis.read())!=-1){
bos.write(len);
}
bis.close();
bos.close();
}
}
public void listFile(File dir,List<String> list){
File[] files=dir.listFiles();
for(File f:files){
if(f.isDirectory()){
listFile(f,list);
}else{
list.add(f.getAbsolutePath());
}
}
}
}
作者:
LJZkevin
时间:
2014-5-18 22:31
代码有点乱,不想看懂
作者:
湛添友
时间:
2014-5-18 23:02
怪我没有注释
作者:
蓝雨星空
时间:
2014-5-19 08:54
你把这个程序想得太麻烦了,要往简单想。
遍历源文件夹,指定目标文件夹,遍历到一个文件夹就在目标文件夹中创建一个文件夹,然后递归,
遍历到一个文件就在目标文件夹中复制一个文件。
完事……
作者:
大漠孤烟
时间:
2014-5-22 00:28
我也觉得代码好凌乱的感觉。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2