Java Delete File Recursively deleteRecursively(File root)

Here you can find the source of deleteRecursively(File root)

Description

Delete the supplied File - for directories, recursively delete any nested directories or files as well.

License

Apache License

Parameter

Parameter Description
root the root <code>File</code> to delete

Return

true if the File was deleted, otherwise false

Declaration

public static boolean deleteRecursively(File root) 

Method Source Code


//package com.java2s;
/*//  www . jav a 2 s  . com
 * Copyright 2002-2008 the original author or authors.
 * 
 * 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.File;

public class Main {
    /**
     * Delete the supplied {@link File} - for directories, recursively delete
     * any nested directories or files as well.
     * 
     * @param root the root <code>File</code> to delete
     * @return <code>true</code> if the <code>File</code> was deleted, otherwise
     *         <code>false</code>
     */
    public static boolean deleteRecursively(File root) {
        if (root.exists()) {
            if (root.isDirectory()) {
                File[] children = root.listFiles();
                for (int i = 0; i < children.length; i++) {
                    deleteRecursively(children[i]);
                }
            }
            return root.delete();
        }
        return false;
    }

    public static boolean deleteRecursively(File root, boolean deleteRoot) {
        if (root.exists() && root.isDirectory()) {
            File[] children = root.listFiles();
            for (int i = 0; i < children.length; i++) {
                deleteRecursively(children[i]);
            }
            if (deleteRoot)
                return root.delete();
            return true;
        }
        return false;
    }

    public static boolean delete(String filename) {
        File file = new File(filename);
        return deleteRecursively(file);
    }
}

Related

  1. deleteRecursively(File fileOrDir)
  2. deleteRecursively(File fileToDelete)
  3. deleteRecursively(File fRoot)
  4. deleteRecursively(File name)
  5. deleteRecursively(File root)
  6. deleteRecursively(File root, boolean deleteRoot)
  7. deleteRecursively(File[] roots)
  8. deleteRecursively(final File directory)
  9. deleteRecursively(final File directory)