Java File Path Delete deleteDir(File dir, int depth, boolean deleteRootDirectory)

Here you can find the source of deleteDir(File dir, int depth, boolean deleteRootDirectory)

Description

Deletes all files and subdirectories under dir.

License

Apache License

Parameter

Parameter Description
dir a parameter
depth starts at 1, increments up

Declaration

private static boolean deleteDir(File dir, int depth, boolean deleteRootDirectory) 

Method Source Code

//package com.java2s;
/**// w  ww.ja  v a2 s . c o  m
 * Copyright 2011 OpenCDS.org
 *   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 {
    /**
     * Deletes all files and subdirectories under dir.  Deletes parent directory if so specified.
     * Returns true if all deletions were successful.
     * If a deletion fails, the method stops attempting to delete and returns false.
     * @param dir
     * @param depth    starts at 1, increments up
     * @return
     */
    private static boolean deleteDir(File dir, int depth, boolean deleteRootDirectory) {
        int originalDepth = depth;
        depth++;
        if (dir.isDirectory()) {
            String[] children = dir.list();
            for (int i = 0; i < children.length; i++) {
                boolean success = deleteDir(new File(dir, children[i]), depth, deleteRootDirectory);
                if (!success) {
                    return false;
                }
            }
        }

        // The directory is now empty so delete it
        if ((originalDepth == 1) && (!deleteRootDirectory)) {
            return true;
        } else {
            return dir.delete();
        }
    }

    /**
     * Deletes all files and subdirectories under dir.  Deletes parent directory itself if so specified.
     * Returns true if all deletions were successful.
     * If a deletion fails, the method stops attempting to delete and returns false.
     * @param dir
     * @return
     */
    public static boolean deleteDir(File dir, boolean deleteRootDirectory) {
        return deleteDir(dir, 1, deleteRootDirectory);
    }
}

Related

  1. deleteDir(File dir)
  2. deleteDir(File dir)
  3. deleteDir(File dir)
  4. deleteDir(File dir, boolean deleteRoot)
  5. deleteDir(File dir, boolean deleteSelf)
  6. deleteDir(File dir, String dirPath)
  7. deleteDir(File directory)
  8. deleteDir(File directory)
  9. deleteDir(File directory)