java之高效操作文件
程序员文章站
2022-03-12 18:13:50
代码: 1 import java.io.IOException; 2 import java.nio.file.FileVisitOption; 3 import java.nio.file.FileVisitResult; 4 import java.nio.file.FileVisitor; ......
代码:
1 import java.io.IOException; 2 import java.nio.file.FileVisitOption; 3 import java.nio.file.FileVisitResult; 4 import java.nio.file.FileVisitor; 5 import java.nio.file.Files; 6 import java.nio.file.Path; 7 import java.nio.file.Paths; 8 import java.nio.file.attribute.BasicFileAttributes; 9 import java.util.EnumSet; 10 class DeleteDirectory implements FileVisitor { 11 12 boolean deleteFileByFile(Path file) throws IOException { 13 return Files.deleteIfExists(file); 14 } 15 16 @Override 17 public FileVisitResult postVisitDirectory(Object dir, IOException exc) 18 throws IOException { 19 20 if (exc == null) { 21 System.out.println("Visited: " + (Path) dir); 22 boolean success = deleteFileByFile((Path) dir); 23 24 if (success) { 25 System.out.println("Deleted: " + (Path) dir); 26 } else { 27 System.out.println("Not deleted: " + (Path) dir); 28 } 29 } else { 30 throw exc; 31 } 32 return FileVisitResult.CONTINUE; 33 } 34 35 @Override 36 public FileVisitResult preVisitDirectory(Object dir, BasicFileAttributes attrs) 37 throws IOException { 38 return FileVisitResult.CONTINUE; 39 } 40 41 @Override 42 public FileVisitResult visitFile(Object file, BasicFileAttributes attrs) 43 throws IOException { 44 boolean success = deleteFileByFile((Path) file); 45 46 if (success) { 47 System.out.println("Deleted: " + (Path) file); 48 } else { 49 System.out.println("Not deleted: " + (Path) file); 50 } 51 52 return FileVisitResult.CONTINUE; 53 } 54 55 @Override 56 public FileVisitResult visitFileFailed(Object file, IOException exc) 57 throws IOException { 58 //report an error if necessary 59 60 return FileVisitResult.CONTINUE; 61 } 62 } 63 64 class Main { 65 66 public static void main(String[] args) throws IOException { 67 68 Path directory = Paths.get("C:/rafaelnadal"); 69 DeleteDirectory walk = new DeleteDirectory(); 70 EnumSet opts = EnumSet.of(FileVisitOption.FOLLOW_LINKS); 71 72 Files.walkFileTree(directory, opts, Integer.MAX_VALUE, walk); 73 } 74 }
上一篇: 向苹果看齐!三星Galaxy S21包装盒曝光:不配充电器
下一篇: 设计模式之访问者模式
推荐阅读
-
Java操作MySQL数据库存取图片以及其它类型文件_MySQL
-
在Python中操作文件之truncate()方法的使用教程
-
在Python程序中操作文件之isatty()方法的使用教程
-
PHP文件读写操作之文件读取方法详解
-
python文件基础之文件操作详细介绍
-
python文件操作之批量修改文件后缀名的方法
-
init.php文件 PHP文件读写操作之文件读取方法详解
-
PHP文件读写操作之文件写入代码_php技巧
-
Java JDBC入门之八 : DAO设计模式重构查询方法 AND 使用BeanUtils工具类操作JavaBean
-
python目录操作之python遍历文件夹后将结果存储为xml