package com.cast;
/*
* 鍵盤錄入兩個文件路徑,將其中一個文件夾中的所有的文件複製到另一個文件中
*
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class CopyFilestoOthers {
public static void main(String[] args) throws IOException {
File src = getDir();
File dest = getDir();
if(dest.equals(src)){
System.out.println("目標文件是源文件子目錄!");
}else{
copy(src,dest);
}
//搞定
System.out.println("文件夾已經複製完成.");
}
public static File getDir(){
Scanner sc = new Scanner(System.in);
System.out.println("輸入文件夾路徑:");
while(true){
String line = sc.nextLine();
File dir = new File(line);
if(!dir.exists()){
System.out.println("文件夾不存在!重輸");
}else if(dir.isFile()){
System.out.println("不是文件夾!重輸:");
}else{
return dir;
}
}
}
public static void copy(File src,File dest) throws IOException{
File newDir = new File(dest,src.getName());
if (!newDir.exists()) { //如果文件夾不存在
newDir.mkdir();
}
File[] subFiles = src.listFiles();
for (File subFile : subFiles) {
if(subFile.isFile()){
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(newDir,subFile.getName())));
int len;
while((len = bis.read()) != -1){
bos.write(len);
}
bis.close();
bos.close();
}else{
copy(subFile,newDir);
}
}
}
}
鍵盤錄入兩個文件路徑,將其中一個文件夾中的所有的文件複製到另一個文件中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.