1.最初写的版本:
与其说是线程,其实也是递归的思路;
对于B路径中没有的文件夹、文件,不会自动创建需要我自己创建好(但new BufferedWriter(new FileWriter)应该会自动创建文件file)
import java.io.*;
import java.nio.file.Files;
/**
* 输入两个文件夹名称,
* 将A文件夹内容全部拷贝到B文件夹,
* 要求使用多线程来操作。
*
*
* 每进入1个文件夹 就创建1个线程复制粘贴
*/
public class FileCopy {
public static void main(String[] args) {
//路径不能是文件夹 必须要具体到文件
//从里往外 先找到里面的文件
new myTh("D:\\文件\\A","D:\\文件\\B").start();
}
}
class myTh extends Thread{
private String fileA;
private String fileB;
public myTh(String fileA, String fileB) {
this.fileA = fileA;
this.fileB = fileB;
}
@Override
public void run() {
File fA = new File(fileA);
File fB = new File(fileB);
if(!fA.exists()){
Thread.currentThread().interrupt();//终止线程
}
if(fA.isDirectory()){
File[] files = fA.listFiles();
for (File file : files) {
String newfA=file.getPath();
String newpath = newfA