Java Path Remove nio removeRecursive(Path path)

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

Description

Delete directory recursively.

License

Open Source License

Parameter

Parameter Description
path directory to delete

Exception

Parameter Description
IOException if any read error

Declaration

public static void removeRecursive(Path path) throws IOException 

Method Source Code

//package com.java2s;
/*/*from www. j  av a  2 s  .c o m*/
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * See LICENSE.txt included in this distribution for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at LICENSE.txt.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */

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 {
    /**
     * Delete directory recursively. This method does not follow symlinks.
     * @param path directory to delete
     * @throws IOException if any read error
     */
    public static void removeRecursive(Path path) throws IOException {
        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 {
                // Try to delete the file anyway.
                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 {
                    // Directory traversal failed.
                    throw exc;
                }
            }
        });
    }
}

Related

  1. removeDriveLetter(Path path)
  2. removeFile(final String removePath)
  3. removeFile(String path)
  4. removeFile(String workspacePath)
  5. removeLine(String path, String line, boolean commentAware)
  6. removeRecursive(Path path)
  7. removeSymlink(Path softLinkLocation)
  8. reportRemoveSymink(Path softLinkLocation)
  9. rm(final LinkedHashMap unremoved, Path... locations)