欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java使用遞歸復制文件夾及文件夾

 更新時間:2020年05月14日 14:34:48   作者:Draogn  
這篇文章主要介紹了Java使用遞歸復制文件夾及文件夾,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

遞歸調用copyDir方法實現,查詢源文件目錄使用字節(jié)輸入流寫入字節(jié)數組,如果目標文件目錄沒有就創(chuàng)建目錄,如果迭代出是文件夾使用字節(jié)輸出流對拷文件,直至源文件目錄沒有內容。

/**
   * 復制文件夾
   * @param srcDir 源文件目錄
   * @param destDir 目標文件目錄
   */
  public static void copyDir(String srcDir, String destDir) {
    if (srcRoot == null) srcRoot = srcDir;
    //源文件夾
    File srcFile = new File(srcDir);
    //目標文件夾
    File destFile = new File(destDir);
    //判斷srcFile有效性
    if (srcFile == null || !srcFile.exists())
      return;
    //創(chuàng)建目標文件夾
    if (!destFile.exists())
      destFile.mkdirs();
    //判斷是否是文件
    if (srcFile.isFile()) {
      //源文件的絕對路徑
      String absPath = srcFile.getAbsolutePath();
      //取出上級目錄
      String parentDir = new File(srcRoot).getParent();
      //拷貝文件
      copyFile(srcFile.getAbsolutePath(), destDir);

    } else {  //如果是目錄
      File[] children = srcFile.listFiles();
      if (children != null) {
        for (File f : children) {
          copyDir(f.getAbsolutePath(), destDir);
        }
      }
    }
  }
/**
   * 復制文件夾
   *
   * @param path  路徑
   * @param destDir 目錄
   */
  public static void copyFile(String path, String destDir) {

    FileInputStream fis = null;
    FileOutputStream fos = null;
    try {
       /*
        準備目錄
        取出相對的路徑
        創(chuàng)建目標文件所在的文件目錄
       */
      String tmp = path.substring(srcRoot.length());
      String folder = new File(destDir, tmp).getParentFile().getAbsolutePath();
      File destFolder = new File(folder);
      destFolder.mkdirs();
      System.out.println(folder);      //創(chuàng)建文件輸入流
      fis = new FileInputStream(path);
      //定義新路徑
      //創(chuàng)建文件 輸出流
      fos = new FileOutputStream(new File(destFolder,new File(path).getName()));
      //創(chuàng)建字節(jié)數組進行流對拷
      byte[] buf = new byte[1024];
      int len = 0;
      while ((len = fis.read(buf)) != -1) {
        fos.write(buf, 0, len);
      }
    } catch (IOException ex) {
      ex.printStackTrace();
    } finally {
      try {
        fis.close();
        fos.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 如何修改json字符串中某個key對應的value值

    如何修改json字符串中某個key對應的value值

    這篇文章主要介紹了如何修改json字符串中某個key對應的value值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • mybatis映射文件mapper.xml的具體寫法

    mybatis映射文件mapper.xml的具體寫法

    在開發(fā)過程中,需要開發(fā)人員配置mapper映射文件,本文主要介紹了mybatis映射文件mapper.xml的具體寫法,感興趣的可以了解一下
    2021-09-09
  • 如何使用BeanUtils.copyProperties進行對象之間的屬性賦值

    如何使用BeanUtils.copyProperties進行對象之間的屬性賦值

    這篇文章主要介紹了使用BeanUtils.copyProperties進行對象之間的屬性賦值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • springboot的logback配置源碼解讀

    springboot的logback配置源碼解讀

    這篇文章主要為大家介紹了springboot的logback配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • SpringBoot如何解析參數的深入理解

    SpringBoot如何解析參數的深入理解

    這篇文章主要給大家介紹了關于SpringBoot是如何解析參數的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用SpringBoot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Java中保留兩位小數的四種方法實現實例

    Java中保留兩位小數的四種方法實現實例

    今天小編就為大家分享一篇關于Java中保留兩位小數的四種方法實現實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Spring中的@CrossOrigin注解的使用詳細解讀

    Spring中的@CrossOrigin注解的使用詳細解讀

    這篇文章主要介紹了Spring中的@CrossOrigin注解的使用詳細解讀,跨源資源共享(CORS),是由大多數瀏覽器實現的W3C規(guī)范,允許對跨域請求進行靈活授權,用來代替IFRAME或JSONP等非正規(guī)實現方式,需要的朋友可以參考下
    2023-11-11
  • java的json解析類庫使用示例

    java的json解析類庫使用示例

    這篇文章主要介紹了java的json解析類庫使用方法,這里使用Zson解析json,這是一個開源的json處理類庫
    2014-03-03
  • SpringMVC域對象共享數據示例詳解

    SpringMVC域對象共享數據示例詳解

    這篇文章主要為大家介紹了SpringMVC域對象共享數據示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Java如何比較兩個任意文件是否相同

    Java如何比較兩個任意文件是否相同

    這篇文章主要為大家詳細介紹了Java如何實現比較兩個任意文件是否相同,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04

最新評論