//現在制定路徑下創建名稱為左側的文件夾
public class Copy {
public static void main(String[] args) {
//原始文件地址
File srcFolder = new File("C:\\Users\\Pei\\Desktop\\測試復制");
//原始文件名
String srcFloderName = srcFolder.getName();
System.out.println(srcFloderName);
//要復制到的文件
File desFolder = new File("C:\\Users\\Pei\\Desktop\\左側", srcFloderName);
//如果要復制到的文件沒有這個文件夾,就創建一個
if (!desFolder.exists()){
desFolder.mkdir();
}
try {
copyFolder(srcFolder,desFolder);
} catch (IOException e) {
e.printStackTrace();
}
}
//復制文件夾
private static void copyFolder(File srcFolder, File desFolder) throws IOException {
//遍歷原始文件夾里面的所有文件及文件夾
File[] files = srcFolder.listFiles();
for (File srcFile : files) {
//如果是文件夾
if (srcFile.isDirectory()){
//在新的文件夾內創建一個和srcFile文件夾同名文件夾,然后再遞歸調用,判斷文件夾里面的情況,然后做出相應處理
String srcFileName = srcFile.getName();
File newFolder = new File(desFolder, srcFileName);
if (!newFolder.exists()){
newFolder.mkdir();
copyFolder(srcFile,newFolder);
}
//如果是文件
}else {
String srcFileName = srcFile.getName();
File desFile = new File(desFolder, srcFileName);
copyFile(srcFile,desFile);
}
}
}
//復制文件(這里復制文件如果看不懂的請看我另一篇博客[IO流詳解](https://blog.csdn.net/tannins_/article/details/99298995))
private static void copyFile (File srcFile, File desFile) throws IOException {
BufferedReader br = new BufferedReader((new InputStreamReader(new FileInputStream(srcFile),"utf-8")));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(desFile),"utf-8"));
char[] chars = new char[1024];
int len;
while ((len = br.read(chars)) != -1) {
bw.write(len);
bw.flush();
}
br.close();
bw.close();
}