java删除文件或目录的三种方法

一、所用工具

传统删除是利用IO流,本文利用NIO流实现。

二、常见几种方法

1.传统IO流

代码如下(示例):

//调用
 File file = new File("E:/河南省乡镇点/GIS/");
 deleteFile(file);
//删除文件夹及其文件
    public static void deleteFile(File file){
        //获取目录下子文件
        File[] files = file.listFiles();
        //遍历该目录下的文件对象
        for (File f : files) {
            //打印文件名
            System.out.println("文件名:" + f.getName());
            //文件删除
            f.delete();
        }
        boolean delete = file.delete();
        System.out.println(delete);
    }

2.强制删除(如若一次删除失败,进行多次强制删除即可)

代码如下(示例):

//调用
 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();
        }
        return result;
    }

3.利用NIO流

代码如下(示例):

 Path path= Paths.get("E:\\河南省乡镇点\\GIS");
        Files.walkFileTree(path,new SimpleFileVisitor<>(){
            //遍历删除文件
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                Files.delete(file);
                return FileVisitResult.CONTINUE;
            }
            //遍历删除目录
            public FileVisitResult postVisitDirectory(Path dir,IOException exc) throws IOException{
                Files.delete(dir);
                return FileVisitResult.CONTINUE;
            }
        });

总结

利用NIO流的好处:
1.如果删除失败,可以给出错误的具体原因;
2.代码不多,效率高。文章来源地址https://uudwc.com/A/bEDAg

阅读剩余 32%

原文地址:https://blog.csdn.net/qq_37967853/article/details/127566155

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月01日 05:15
git lfs 完美解决 Use `git lfs logs last` to view the log.error: external filter ‘git-lfs filter-proces
下一篇 2023年09月01日 05:19