Javaでファイルまたはディレクトリを削除する3つの方法

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. コードが少なく、効率が高い。

おすすめ

転載: blog.csdn.net/qq_37967853/article/details/127566155