Как удалить каталог в Java

Как удалить каталог в Java

Чтобы удалить каталог, вы можете просто использоватьFile.delete(), но каталог должен быть пустым, чтобы его можно было удалить.

Часто вам может потребоваться выполнитьrecursive delete in a directory, что означает, что все его подкаталоги и файлы также должны быть удалены, см. Пример ниже:

Пример рекурсивного удаления каталога

Удалите каталог с именем «C:\example-new», а также все его подкаталоги и файлы. Код не требует пояснений и хорошо документирован, его легко понять.

package com.example.file;

import java.io.File;
import java.io.IOException;

public class DeleteDirectoryExample
{
    private static final String SRC_FOLDER = "C:\\example-new";

    public static void main(String[] args)
    {

        File directory = new File(SRC_FOLDER);

        //make sure directory exists
        if(!directory.exists()){

           System.out.println("Directory does not exist.");
           System.exit(0);

        }else{

           try{

               delete(directory);

           }catch(IOException e){
               e.printStackTrace();
               System.exit(0);
           }
        }

        System.out.println("Done");
    }

    public static void delete(File file)
        throws IOException{

        if(file.isDirectory()){

            //directory is empty, then delete it
            if(file.list().length==0){

               file.delete();
               System.out.println("Directory is deleted : "
                                                 + file.getAbsolutePath());

            }else{

               //list all the directory contents
               String files[] = file.list();

               for (String temp : files) {
                  //construct the file structure
                  File fileDelete = new File(file, temp);

                  //recursive delete
                 delete(fileDelete);
               }

               //check the directory again, if empty then delete it
               if(file.list().length==0){
                 file.delete();
                 System.out.println("Directory is deleted : "
                                                  + file.getAbsolutePath());
               }
            }

        }else{
            //if file, then delete it
            file.delete();
            System.out.println("File is deleted : " + file.getAbsolutePath());
        }
    }
}

Результат

File is deleted : C:\example-new\404.php
File is deleted : C:\example-new\archive.php
...
Directory is deleted : C:\example-new\includes
File is deleted : C:\example-new\index.php
File is deleted : C:\example-new\index.php.hacked
File is deleted : C:\example-new\js\hoverIntent.js
File is deleted : C:\example-new\js\jquery-1.4.2.min.js
File is deleted : C:\example-new\js\jquery.bgiframe.min.js
Directory is deleted : C:\example-new\js\superfish-1.4.8\css
Directory is deleted : C:\example-new\js\superfish-1.4.8\images
Directory is deleted : C:\example-new\js\superfish-1.4.8
File is deleted : C:\example-new\js\superfish-navbar.css
...
Directory is deleted : C:\example-new
Done