中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK1.7 Paths,Files類實現文件夾的復制與刪除的實例

發布時間:2020-09-19 09:50:31 來源:腳本之家 閱讀:205 作者:尚云峰111 欄目:編程語言

實例如下所示:

public static void copyFolder(String srcFolder, String destFolder)
    throws IOException {
  long startTime = System.currentTimeMillis();
  final Path srcPath = Paths.get(srcFolder);
  // 這里多創建一級,就解決了沒有外殼的問題
  final Path destPath = Paths.get(destFolder, srcPath.toFile().getName());
  // 檢查源文件夾是否存在
  if (Files.notExists(srcPath)) {
    System.err.println("源文件夾不存在");
    System.exit(1);
  }
  // 如果目標目錄不存在,則創建
  if (Files.notExists(destPath)) {
    Files.createDirectories(destPath);
  }
// 這里是官方例子的開頭,可能是針對大文件處理設置的參數
// Files.walkFileTree(srcPath,   EnumSet.of(FileVisitOption.FOLLOW_LINKS),
// Integer.MAX_VALUE, new SimpleFileVisitor<Path>() {}
//簡化后的開頭
  Files.walkFileTree(srcPath, new SimpleFileVisitor<Path>() {
    // 官方還調用了專門的文件夾處理,這里沒使用
    // public FileVisitResult preVisitDirectory(Path dir,
    // BasicFileAttributes attrs) throws IOException {return null;}
    @Override
    // 文件處理,將文件夾也一并處理,簡潔些
    public FileVisitResult visitFile(Path file,
      BasicFileAttributes attrs) throws IOException {
    Path dest = destPath.resolve(srcPath.relativize(file));
    // 如果說父路徑不存在,則創建
    if (Files.notExists(dest.getParent())) {
      Files.createDirectories(dest.getParent());
    }
    Files.copy(file, dest);
    return FileVisitResult.CONTINUE;
    }
  });
  long endTime = System.currentTimeMillis();
  System.out.println("復制成功!耗時:" + (endTime - startTime) + "ms");
  }

  // 刪除文件夾
  public static void deleteFolder(String Foleder) throws IOException {
  Path start = Paths.get(Foleder);
  if (Files.notExists(start)) {
    throw new IOException("文件夾不存在!");
  }

  Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
    @Override //構成了一個內部類
    // 處理文件
    public FileVisitResult visitFile(Path file,BasicFileAttributes attrs) throws IOException {
    Files.delete(file);
    return FileVisitResult.CONTINUE;
    }

    @Override
    // 再處理目錄
    public FileVisitResult postVisitDirectory(Path dir, IOException e)
      throws IOException {
    if (e == null) {
      Files.delete(dir);
      return FileVisitResult.CONTINUE;
    } else {
      throw e;
    }
    }
  });
  System.out.println("刪除成功!");
  }

  public static void main(String[] args) throws IOException {
//copyFolder("C:\\Users\\Administrator\\Desktop\\111", "D:\\壓縮\\1級\\2級");// 419ms,378ms,429ms....
deleteFolder("C:\\Users\\Administrator\\Desktop\\111");}

如有問題,還請提出,謝謝!

以上這篇JDK1.7 Paths,Files類實現文件夾的復制與刪除的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠州市| 晋江市| 龙南县| 安康市| 塔城市| 布拖县| 和龙市| 葫芦岛市| 宣化县| 桐梓县| 五常市| 贵南县| 桐城市| 凤凰县| 新和县| 道真| 东乌珠穆沁旗| 互助| 茌平县| 松潘县| 缙云县| 九寨沟县| 托里县| 皮山县| 定西市| 张掖市| 叙永县| 柘城县| 勃利县| 体育| 乐亭县| 万山特区| 漳州市| 翼城县| 平南县| 佳木斯市| 岚皋县| 常山县| 和田市| 清水河县| 丹棱县|