Java复制一个目录下所有的文件夹到另一个目录下
发布时间:2020-05-24 18:22:30 所属栏目:Java 来源:互联网
导读:Java复制一个目录下所有的文件夹到另一个目录下
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 import java.io.*;
import java.util.*;
private static File[] copyfoldersList = new File("C:WindowsSystem32").listFiles();
for (int k = 0; k < copyfoldersList.length; k++) {
if (copyfoldersList[k].isDirectory()) {
LinkedList<String> copysourcepath = new LinkedList<String>(
Arrays.asList(copyfoldersList[k].getAbsolutePath()));
LinkedList<String> copytargetpath = new LinkedList<String>(
Arrays.asList("D:"+ File.separator+ copyfoldersList[k].getAbsolutePath().substring(copyfoldersList[k].getAbsolutePath().lastIndexOf(File.separator))));
while (copysourcepath.size() > 0) {
(new File(copytargetpath.peek())).mkdirs();
File folders = new File(copysourcepath.peek());
String[] file = folders.list();
File temp = null;
for (int i = 0; i < file.length; i++) {
if (copysourcepath.peek().endsWith(File.separator))
temp = new File(copysourcepath.peek(),file[i]);
else
temp = new File(copysourcepath.peek(),file[i]);
FileInputStream input = null;
FileOutputStream output = null;
if (temp.isFile()) {
try {
input = new FileInputStream(temp);
output = new FileOutputStream(new File(copytargetpath.peek(),temp.getName().toString()));
long filelength=input.length();
long buffsize=filelength<10485760L?filelength:10485760L;
byte[] b = new byte[buffsize];
int len;
while ((len = input.read(b)) != -1)
output.write(b,len);
output.flush();
} catch (IOException e) {
System.err.println("复制单个文件操作出错");
} finally {
try {
output.close();
input.close();
} catch (IOException e) {
}
}
} else if (temp.isDirectory()) {
for (File f : temp.listFiles()) {
if (f.isDirectory()) {
copysourcepath.add(f.getPath());
copytargetpath.add(copytargetpath.peek()
+ File.separator + f.getName());
} else if (f.isFile()) {
new File(copytargetpath.peek()+ File.separator+ temp.getName()).mkdirs();
FileInputStream input2 = null;
FileOutputStream output2 = null;
try {
input2 = new FileInputStream(f);
output2 = new FileOutputStream(copytargetpath.peek()+ File.separator+ temp.getName()+ File.separator+ f.getName());
long filelength=input2.length();
long buffsize=filelength<10485760L?filelength:10485760L;
byte[] b = new byte[buffsize];
int len;
while ((len = input2.read(b)) != -1)
output2.write(b,len);
output2.flush();
} catch (IOException e) {
System.err.println("复制单个文件操作出错");
} finally {
try {
output2.close();
input2.close();
} catch (IOException e) {
}
}
}
}
}
}
copysourcepath.removeFirst();
copytargetpath.removeFirst();
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
