本帖最后由 Fightin黑马 于 2014-9-16 22:26 编辑
贴一下自己做的代码吧;
- import java.io.*;
- import java.util.Scanner;
- public class Copy {
- public static void main(String[] args) throws IOException{
- System.out.println("请输入要复制的文件夹路径");
- File start= getFile();
- System.out.println("请输入目标文件夹路径");
- File dest= getFile();
- startCopy(start,dest);
- System.out.println("复制完成");
- }
- //获取文件夹的方法
- public static File getFile(){
- Scanner sc= new Scanner(System.in);
- while (true) {
- String line = sc.nextLine();
- File file = new File(line);
- if (file.exists()) {
- if (file.isDirectory()) {
- return file;
-
- } else if (file.isFile()) {
- System.out.println("您输入的是一个文件路径,请输入一个文件夹路径");
- }
- } else {
- System.out.println("您输入的文件夹路径不存在,请重新输入一个文件夹路径");
- }
- }
- }
-
- private static void startCopy(File start, File dest) throws IOException {
- File file= new File(dest,start.getName());
- file.mkdir();
- File[] arr= start.listFiles();
- for (File file2 : arr) {
- if(file2.isDirectory()){
- startCopy(file2,file);
- }else{
- copy(file,file2);
- }
- }
- }
- //复制文件的方法
- private static void copy(File file,File file2) throws IOException {
- BufferedInputStream bis= new BufferedInputStream(new FileInputStream(file2));
- BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream(new File(file,file2.getName())));
- int len;
- while((len=bis.read())!=-1){
- bos.write(len);
- }
- bis.close();
- bos.close();
-
- }
- }
复制代码
|