Java删除文件夹

    /**
     * 使用walkFileTree方法遍历整个文件目录树,使用FileVisitor处理遍历出来的每一项文件或文件夹
     * FileVisitor的visitFile方法用来处理遍历结果中的“文件”,所以我们可以在这个方法里面删除文件
     * @param filePath
     */
    public void deleteFileByWalkFileTree(String filePath) throws IOException {
        Path path = Paths.get(filePath);
        Files.walkFileTree(path,
                new SimpleFileVisitor<Path>() {
                    // 先去遍历删除文件
                    @Override
                    public FileVisitResult visitFile(Path file,
                                                     BasicFileAttributes attrs) throws IOException {
                        Files.delete(file);
                        System.out.printf("文件被删除 : %s%n", file);
                        return FileVisitResult.CONTINUE;
                    }

                    // 再去遍历删除目录
                    @Override
                    public FileVisitResult postVisitDirectory(Path dir,
                                                              IOException exc) throws IOException {
                        Files.delete(dir);
                        System.out.printf("文件夹被删除: %s%n", dir);
                        return FileVisitResult.CONTINUE;
                    }

                }
        );
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了删除Java中的文件夹,你可以使用以下几种方法: 方法一:使用递归删除文件夹及其文件。 ```java File file = new File("E:/河南省乡镇点/GIS/"); deleteFile(file); public static void deleteFile(File file) { File[] files = file.listFiles(); for (File f : files) { if (f.isFile()) { f.delete(); } else { deleteFile(f); } } file.delete(); } ``` 方法二:使用Files.walkFileTree方法遍历删除文件夹及其文件。 ```java Path path = Paths.get("E:\\河南省乡镇点\\GIS"); Files.walkFileTree(path, new SimpleFileVisitor<>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { Files.delete(file); return FileVisitResult.CONTINUE; } @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { Files.delete(dir); return FileVisitResult.CONTINUE; } }); ``` 方法三:使用强制删除,如果一次删除失败,则进行多次尝试,直到删除成功为止。 ```java File file = new File("E:/河南省乡镇点/GIS/");forceDelete(file); public static boolean forceDelete(File file) { boolean result = file.delete(); int tryCount = 0; while (!result && tryCount < 10) { System.gc(); result = file.delete(); tryCount++; } return result; } ``` 方法四:利用NIO流删除文件夹及其文件。 ```java Path path = Paths.get("E:/河南省乡镇点/GIS/"); try (Stream<Path> walk = Files.walk(path)) { walk.sorted(Comparator.reverseOrder()) .map(Path::toFile) .forEach(File::delete); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值