Java File Delete nio deleteFiles(File directory, String affix)

Here you can find the source of deleteFiles(File directory, String affix)

Description

Delete all the files and sub directories which matches given prefix in a given directory.

License

Open Source License

Parameter

Parameter Description
directory Directory which contains files to delete.
affix Affix for finding the matching files to delete.

Declaration

public static void deleteFiles(File directory, String affix) 

Method Source Code

//package com.java2s;
/*// w ww  . j a  v  a 2s .c  o m
 * Copyright (c) 2019, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
 *
 * WSO2 Inc. licenses this file to you 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;

import java.io.IOException;

import java.nio.file.FileVisitOption;
import java.nio.file.Files;
import java.nio.file.Path;

import java.util.Comparator;

public class Main {
    /**
     * Delete all the files and sub directories which matches given prefix in a given directory.
     *
     * @param directory Directory which contains files to delete.
     * @param affix     Affix for finding the matching files to delete.
     */
    public static void deleteFiles(File directory, String affix) {
        if (!directory.isDirectory()) {
            return;
        }

        for (File f : directory.listFiles()) {
            if (f.getName().startsWith(affix) || f.getName().endsWith(affix)) {
                deleteDirectory(f);
            }
        }
    }

    /**
     * Delete the given directory along with all files and sub directories.
     *
     * @param directory Directory to delete.
     */
    public static boolean deleteDirectory(File directory) {
        try {
            Files.walk(directory.toPath(), FileVisitOption.FOLLOW_LINKS).sorted(Comparator.reverseOrder())
                    .map(Path::toFile).forEach(File::delete);
        } catch (IOException e) {
            return false;
        }
        return true;
    }
}

Related

  1. deleteFile(File f)
  2. deleteFile(String fileName)
  3. deleteFile(String filename)
  4. deleteFileCascade(String directory)
  5. deleteFileRescursive(File file)
  6. deleteIfEmpty(final File directory)
  7. deleteLocalFile(final String fileName)
  8. deleteLocalFileOrDirectory(File file)
  9. deleteMatching(File baseFile, String regex)