其实有写好的jar包可以使用,现在项目下面新建一个文件夹lib,然后把jar包复制进去,右击—Build Path—add to buildPath即可,jar包原理如下
思路:定义一个方法,用来获取用户录入的文件夹路径 getDir()
定义一个方法,用来复制文件夹 copyDirToDir()
package io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Scanner;
public class CopyDir {
public static void main(String[] args) throws Exception {
/*
* 思路:定义一个方法,用来获取用户录入的文件夹路径 getDir()
*定义一个方法,用来复制文件夹 copyDirToDir()
*/
File star = getDir();
File end = getDir();
copyDirToDir(star,end);
System.out.println("ok");
}
//定义一个方法,用来获取用户录入的文件夹路径 getDir()
public static File getDir(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
while(true){
String line = scan.next();
File dir = new File(line);
if(!dir.isDirectory()){
System.out.println("输入有误,请重新输入");
}else{
return dir;
}
}
}
//定义一个方法,用来复制文件夹 copyDirToDir()
public static void copyDirToDir(File src,File dest) throws Exception{
/*
* 主要是把listFile拷贝到newDir中
*
* 思路:
* 1、在目的地文件夹下创建一个和数据源文件夹名字一模一样的文件夹
* 注意:如果文件夹不存在就创建,存在就不创建
* 2、File#listFiels()方法,获取到数据源下文件下所有的File对象
* 3、遍历File数组,获取到每一个File对象,然后判断
* 是文件就拷贝
* 是文件夹就递归
*/
//先封装这个路径
File newDir = new File(dest,src.getName());
//但是不存在的话,就要创建
if(!newDir.exists()){
newDir.mkdir();
}
//File#listFiels()方法,获取到数据源下文件下所有的File对象
File[] listFiles = src.listFiles();
//listFile为数据源下文件下的某个File对象
for(File listFile:listFiles){
if(listFile.isFile()){
FileInputStream fis = new FileInputStream(listFile);
//保持目的地文件名和源文件名的名字相同
File newFile = new File(newDir,listFile.getName());
FileOutputStream fos = new FileOutputStream(newFile);
int ch = 0;
while((ch = fis.read())!=-1){
fos.write(ch);
}
fis.close();
fos.close();
}else{
copyDirToDir(listFile,newDir);
}
}
}
}
使用jar包
package io;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import org.apache.commons.io.FileUtils;
public class IOJar {
public static void main(String[] args) throws Exception {
File star = getDir();
File end = getDir();
FileUtils.copyDirectoryToDirectory(star, end);
System.out.println("OK");
}
public static File getDir(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个文件夹路径:");
while(true){
String line = scan.next();
File dir = new File(line);
if(!dir.isDirectory()){
System.out.println("输入有误,请重新输入");
}else{
return dir;
}
}
}
}