文件夾拷貝

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

//文件夾複製工具
public class FileCopy {
	public static void copyFolderFileB2B(String fromFile, String toFile) {
		copyFolderFileB2B(new File(fromFile), toFile);
	}
	
	public static void copyFolderFile(String fromFile, String toFile) {
		copyFolderFile(new File(fromFile), toFile);
	}
	
	public static void copyFolderFile(File fromFile, String toFile) {
		//如果爲空就copy文件
		if (fromFile.isFile()) {
			toFile = toFile + "/" + fromFile.getName();
			FileWriter toFileWriter = null;
			FileReader fromFileReader = null;
			BufferedWriter bw = null;
			BufferedReader br = null;
			
			try {
				
				toFileWriter = new FileWriter(new File(toFile));
				fromFileReader = new FileReader(fromFile);
				
				bw = new BufferedWriter(toFileWriter);
				br = new BufferedReader(fromFileReader);
				String lineString = null;
				
				String lineSeparator = System.getProperties().getProperty("line.separator");//換行符
				
				while((lineString = br.readLine()) != null) {
					bw.write(lineString);
					bw.write(lineSeparator);
				}
				
				bw.flush();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				try {
					if (bw != null) {
						bw.close();
					}
					if (br != null) {
						br.close();
					}
					if (fromFileReader != null) {
						fromFileReader.close();
					}
					if (toFileWriter != null) {
						toFileWriter.close();
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return;
		}
		File fileTemp = new File(toFile);
		if (!fileTemp.exists()) {
			fileTemp.mkdir();
		}
		toFile = toFile + File.separator + fromFile.getName();
		if (!new File(toFile).exists()) {
			new File(toFile).mkdir();
		}
		
		for (File f : fromFile.listFiles()) {
			copyFolderFile(f, toFile);
		}
		
	}
	
	public static void copyFolderFileB2B(File fromFile, String toFile) {
		//如果爲空就copy文件
		if (fromFile.isFile()) {
			toFile = toFile + "/" + fromFile.getName();
			FileOutputStream toFileWriter = null;
			FileInputStream fromFileReader = null;
			BufferedOutputStream bw = null;
			BufferedInputStream br = null;
			
			try {
				
				toFileWriter = new FileOutputStream(new File(toFile));
				fromFileReader = new FileInputStream(fromFile);
				
				bw = new BufferedOutputStream(toFileWriter);
				br = new BufferedInputStream(fromFileReader);
//				String lineString = null;
				byte[] bytes = new byte[1024];
				
//				String lineSeparator = System.getProperties().getProperty("line.separator");//換行符
				
				while(br.read(bytes) != -1) {
					bw.write(bytes);
				}
				
				bw.flush();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				try {
					if (bw != null) {
						bw.close();
					}
					if (br != null) {
						br.close();
					}
					if (fromFileReader != null) {
						fromFileReader.close();
					}
					if (toFileWriter != null) {
						toFileWriter.close();
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return;
		}
		File fileTemp = new File(toFile);
		if (!fileTemp.exists()) {
			fileTemp.mkdir();
		}
		toFile = toFile + File.separator + fromFile.getName();
		if (!new File(toFile).exists()) {
			new File(toFile).mkdir();
		}
		
		for (File f : fromFile.listFiles()) {
			copyFolderFileB2B(f, toFile);
		}
		
	}
}

 

發佈了49 篇原創文章 · 獲贊 0 · 訪問量 2721
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章