IO流传输的是文件,不是文件夹,如果你要复制文件夹里面的文件,,就需要先在目标路径中先创建和原文件夹名一样的文件夹,在用IO操作文件.
public static void copy(File src,File dest) throws IOException {
//把新文件的路径和源文件的文件名封装成对象
File fi = new File(dest,src.getName());
//在新文件夹中创建跟原文件名一样的文件夹
fi.mkdir();
//把源文件的路径封装成对象数组,拿到里面所有文件的对象
File[] file2 = src.listFiles();
//遍历源文件所有对象
for (File file : file2) {
//判断如果是文件 就IO写如目标文件夹
if(file.isFile()){
BufferedInputStream bf1 = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bf2 = new BufferedOutputStream(new FileOutputStream(new File(fi,file.getName())));
int b;
while((b= bf1.read())!= -1) {
bf2.write(b);
}
bf1.close();
bf2.close();
//如果是文件夹 就递归调用
} else if(file.isDirectory()) {
copy(file,fi);
}
} |