海鸥航迹

学习之笔记,好文之收集。

导航

利用java本地拷贝文件及文件夹(转)

利用java本地拷贝文件及文件夹 如何实现文件夹对文件夹的拷贝呢?如果文件夹里还有文件夹怎么办呢?

接下来我就将我的方法演示给一些初学者,希望能够帮助你们!

/*
* CopyRight by 
http://www.designac.org/
*/

package copyfile;
import java.io.
*;
/**
* @author Administrator
*
* Class Function:
*/

public class copyDirectory {
public static void main(String args[]) throws IOException {
String url1
="C:/Downloads/kele";
String url2
="d:/java/copyfile/copy";
(
new File(url2)).mkdirs();
File[] file
=(new File(url1)).listFiles();
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
FileInputStream input
=new FileInputStream(file[i]);
FileOutputStream output
=new FileOutputStream(url2+"/"+file[i].getName());
byte[] b=new byte[1024*5];
int len;
while((len=input.read(b))!=-1){
output.write(b,
0,len);
}

output.flush();
output.close();
input.close();
}

if(file[i].isDirectory()){
copyDirectiory(url2
+"/"+file[i].getName(),url1+"/"+file[i].getName());
}

}

}

public static void copyDirectiory(String file1,String file2) throws IOException{
(
new File(file1)).mkdirs();
File[] file
=(new File(file2)).listFiles();
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
FileInputStream input
=new FileInputStream(file[i]);
FileOutputStream output
=new FileOutputStream(file1+"/"+file[i].getName());
byte[] b=new byte[1024*5];
int len;
while((len=input.read(b))!=-1){
output.write(b,
0,len);
}

output.flush();
output.close();
input.close();
}

if(file[i].isDirectory()){
copyDirectiory(file1
+"/"+file[i].getName(),file2+"/"+file[i].getName());
}


}


}

}
 

posted on 2005-01-02 10:36  海天一鸥  阅读(374)  评论(0)    收藏  举报