Java Path Delete nio deleteRecursively(Path directory)

Here you can find the source of deleteRecursively(Path directory)

Description

Deletes a directory recursively.

License

Apache License

Parameter

Parameter Description
directory the directory to delete

Declaration

public static void deleteRecursively(Path directory) throws IOException 

Method Source Code

//package com.java2s;
/*//from   w ww.j a  v  a  2 s .  c  om
 * Copyright ? 2017 The Advanced Research Consortium - ARC (http://idhmcmain.tamu.edu/arcgrant/)
 *
 * 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.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;

public class Main {
    /**
     * Deletes a directory recursively.
     *
     * @param directory the directory to delete
     */
    public static void deleteRecursively(Path directory) throws IOException {
        Files.walkFileTree(directory, new FileVisitor<Path>() {
            @Override
            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                return FileVisitResult.CONTINUE;
            }

            @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 {
                return FileVisitResult.TERMINATE;
            }

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

Related

  1. deleteQuietly(@Nullable Path path)
  2. deleteQuietly(Path dir)
  3. deleteRecursive(Path path)
  4. deleteRecursive(Path path)
  5. deleteRecursively(final Path path)
  6. deleteRecursively(Path path)
  7. deleteTmpDir(Path path)
  8. deleteTreeBelowPath(Path startHerePath)
  9. doDelete(@Nonnull Path path)