package USEif;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class T5 {
public static void main(String[] args) throws IOException {
File file=new File("e:/测试4");
File file2=new File("e:/测试5");
copy(file, file2); //调用复制方法
// shear(file, file2); //调用剪切方法
}
public static void copy(File copied,File copy ) throws IOException { //两个参数中,前者代表要被复制的文件夹名称,后者是一个不存在的文件夹,自定义命名
copy.mkdirs();
File[] copiedFiles=copied.listFiles(); //得到要被复制的文件夹下所有内容,放进文件数组中
for(File file:copiedFiles) { //遍历该数组
if(file.isFile()) { //查看该对象是否是文件
FileInputStream stream=new FileInputStream(file); //读入该对象
FileOutputStream stream2=new FileOutputStream(copy+"/"+file.getName()); //写出该对象到 copy+"/"+file.getName() 路径
byte[] bytes=new byte[1024];
int len=0;
while((len=stream.read(bytes))!=-1){
stream2.write(bytes,0,len);
}
stream.close();
stream2.close();
}else {
File file2=new File(copy+"/"+file.getName());
copy(file,file2); //递归
}
}
}
================================================================================================================
//剪切方法:
public static void shear(File cut, File copy) throws IOException {
copy.mkdirs();
File[] copiedFiles=cut.listFiles();
for(File file:copiedFiles) {
if(file.isFile()) {
FileInputStream stream=new FileInputStream(file);
FileOutputStream stream2=new FileOutputStream(copy+"/"+file.getName());
byte[] bytes=new byte[1024];
int len=0;
while((len=stream.read(bytes))!=-1){
stream2.write(bytes,0,len);
}
stream.close();
stream2.close();
file.delete(); //与复制方法类似,只是在每次复制之后将原文件删除
}else {
File file2=new File(copy+"/"+file.getName());
shear(file,file2);
}
}
cut.delete(); //此时文件夹为空,再将文件夹删除
}