- 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);
- }
- }
- }
- }
复制代码 |
|