一、所用工具

传统删除是利用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.代码不多,效率高。