1. 使用ツール
従来の削除には IO ストリームが使用されますが、このペーパーでは NIO ストリームを使用して実装します。
2 つ、いくつかの一般的な方法
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. 強制削除(1回の削除に失敗した場合、複数回の強制削除が可能)
コードは次のとおりです(例)。
//调用
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. コードが少なく、効率が高い。