Java Path Delete nio recursiveDelete(Path path)

Here you can find the source of recursiveDelete(Path path)

Description

Note: Keep an eye out for recursive delete being added to the core Java API in the future - there are certain circumstances in which this can be unsafe.

License

Apache License

Parameter

Parameter Description
path a parameter

Exception

Parameter Description
IOException an exception

Declaration

public static void recursiveDelete(Path path) throws IOException 

Method Source Code


//package com.java2s;
/*//from ww  w .  ja v a 2  s. c om
 * Copyright 2013 MovingBlocks
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.IOException;

import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public class Main {
    /**
     * Note: Keep an eye out for recursive delete being added to the core Java API in the future - there are certain
     * circumstances in which this can be unsafe.
     *
     * @param path
     * @throws IOException
     */
    public static void recursiveDelete(Path path) throws IOException {
        if (Files.isDirectory(path)) {
            Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    Files.delete(file);
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
                    Files.delete(file);
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                    if (exc == null) {
                        Files.delete(dir);
                        return FileVisitResult.CONTINUE;
                    } else {
                        throw exc;
                    }
                }
            });
        }
    }
}

Related

  1. doDelete(@Nonnull Path path)
  2. forceDelete(Path path)
  3. optimisticDelete(Path path)
  4. readAndDelete(final Path p)
  5. recursiveDelete(Path directory)
  6. recursiveDelete(Path pathToBeDeleted)
  7. recursiveDeleteDirectory(Path dir)
  8. recursiveDeleteOnShutdownHook(final Path path)
  9. recursivelyDeleteFilesFromDir(Path aDirectory)