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.代码不多,效率高。