复制多级文件夹【应用】
生活随笔
收集整理的這篇文章主要介紹了
复制多级文件夹【应用】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
案例需求
-
把“E:\leon”這個文件夾復制到 F盤目錄下
分析步驟
創建數據源File對象,路徑是E:\leon
創建目的地File對象,路徑是F:\
寫方法實現文件夾的復制,參數為數據源File對象和目的地File對象
判斷數據源File是否是文件
? 是文件:直接復制,用字節流
? 不是文件:
在目的地下創建該目錄
遍歷獲取該目錄下的所有文件的File數組,得到每一個File對象
回到3繼續(遞歸)
代碼實現
public class CopyFoldersDemo {public static void main(String[] args) throws IOException {//創建數據源File對象,路徑是E:\\leonFile srcFile = new File("E:\\leon");//創建目的地File對象,路徑是F:\\File destFile = new File("F:\\");//寫方法實現文件夾的復制,參數為數據源File對象和目的地File對象copyFolder(srcFile,destFile);}//復制文件夾private static void copyFolder(File srcFile, File destFile) throws IOException {//判斷數據源File是否是目錄if(srcFile.isDirectory()) {//在目的地下創建和數據源File名稱一樣的目錄String srcFileName = srcFile.getName();File newFolder = new File(destFile,srcFileName); //F:\\leonif(!newFolder.exists()) {newFolder.mkdir();}//獲取數據源File下所有文件或者目錄的File數組File[] fileArray = srcFile.listFiles();//遍歷該File數組,得到每一個File對象for(File file : fileArray) {//把該File作為數據源File對象,遞歸調用復制文件夾的方法copyFolder(file,newFolder);}} else {//說明是文件,直接復制,用字節流File newFile = new File(destFile,srcFile.getName());copyFile(srcFile,newFile);}}//字節緩沖流復制文件private static void copyFile(File srcFile, File destFile) throws IOException {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));byte[] bys = new byte[1024];int len;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}bos.close();bis.close();} }?
總結
以上是生活随笔為你收集整理的复制多级文件夹【应用】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复制单级文件夹【应用】
- 下一篇: 复制文件的异常处理【应用】