<span style="color: #0000ff">import<span style="color: #000000"> java.io.File;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileInputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileNotFoundException;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileOutputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.IOException;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.InputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.OutputStream;
<span style="color: #008000">/*<span style="color: #008000">
-
文件夹的拷贝
1.递归查找子孙级文件
2.文件复制
文件夹创建
-
<span style="color: #808080">@author<span style="color: #008000"> Administrator
-
<span style="color: #008000">*/
<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> CopyDirDemo {
<span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void<span style="color: #000000"> main(String[] args) {
<span style="color: #008000">//<span style="color: #008000">源文件夹
File src = <span style="color: #0000ff">new File("D:web13src"<span style="color: #000000">);
<span style="color: #008000">//<span style="color: #008000">目标文件夹
File dest = <span style="color: #0000ff">new File("D:"<span style="color: #000000">);
</span><span style="color: #0000ff">try</span><span style="color: #000000"> {
copyDir(src,dest);
} </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException e) {
</span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
<span style="color: #000000"> e.printStackTrace();
}
}
<span style="color: #008000">/*<span style="color: #008000">
-
- <span style="color: #808080">@param<span style="color: #008000"> src
- <span style="color: #808080">@param<span style="color: #008000"> dest
- <span style="color: #808080">@throws<span style="color: #008000"> IOException
<span style="color: #008000">*/
<span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void copyDir(File src,File dest) <span style="color: #0000ff">throws<span style="color: #000000"> IOException {
<span style="color: #008000">//<span style="color: #008000"> TODO Auto-generated method stub
<span style="color: #008000">//<span style="color: #008000">判断源文件夹是否是一个文件夹
<span style="color: #0000ff">if<span style="color: #000000">(src.isDirectory()){
dest=<span style="color: #0000ff">new<span style="color: #000000"> File(dest,src.getName());
<span style="color: #008000">//<span style="color: #008000">在目标文件夹中创建文件夹
<span style="color: #000000"> dest.mkdirs();
<span style="color: #008000">//<span style="color: #008000">获取原文件架中所有文件,文件并拷贝,文件夹创建
<span style="color: #0000ff">for<span style="color: #000000">(File f:src.listFiles()){
copyDir(f,<span style="color: #0000ff">new<span style="color: #000000"> File(dest,f.getName()));
}
}<span style="color: #0000ff">else <span style="color: #0000ff">if<span style="color: #000000">(src.isFile()){
copyFile(src,dest);
}
}
<span style="color: #008000">/*<span style="color: #008000">
- 拷贝文件
- <span style="color: #808080">@param<span style="color: #008000"> src
- <span style="color: #808080">@param<span style="color: #008000"> dest
- <span style="color: #808080">@throws<span style="color: #008000"> IOException
<span style="color: #008000">*/
<span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void copyFile(File src,File dest) <span style="color: #0000ff">throws<span style="color: #000000"> IOException{
<span style="color: #0000ff">if<span style="color: #000000">(dest.isDirectory()){
<span style="color: #0000ff">try<span style="color: #000000"> {
<span style="color: #0000ff">throw <span style="color: #0000ff">new Exception("目标是文件夹,不能拷贝"<span style="color: #000000">);
} <span style="color: #0000ff">catch<span style="color: #000000"> (Exception e) {
<span style="color: #008000">//<span style="color: #008000"> TODO Auto-generated catch block
<span style="color: #000000"> e.printStackTrace();
}
}
<span style="color: #0000ff">if<span style="color: #000000">(src.isFile()){
<span style="color: #008000">//<span style="color: #008000">创建流
InputStream is=<span style="color: #0000ff">new<span style="color: #000000"> FileInputStream(src);
OutputStream os=<span style="color: #0000ff">new<span style="color: #000000"> FileOutputStream(dest);
<span style="color: #008000">//<span style="color: #008000">拷贝
<span style="color: #008000">//<span style="color: #008000">一次拷贝字节数
<span style="color: #0000ff">byte []b=<span style="color: #0000ff">new <span style="color: #0000ff">byte[1024<span style="color: #000000">];
<span style="color: #008000">//<span style="color: #008000">记录字节数
<span style="color: #0000ff">int len=0<span style="color: #000000">;
<span style="color: #0000ff">while(-1!=(len=<span style="color: #000000">is.read(b))){
os.write(b,0<span style="color: #000000">,len);
}
<span style="color: #008000">//<span style="color: #008000">关闭流
<span style="color: #000000"> os.close();
is.close();
}<span style="color: #0000ff">else<span style="color: #000000">{
System.out.println("错误,不是文件"<span style="color: #000000">);
}
}
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!