Wie lösche ich ein Verzeichnis in Java?

So löschen Sie ein Verzeichnis in Java

Um ein Verzeichnis zu löschen, können Sie einfachFile.delete() verwenden, aber das Verzeichnis muss leer sein, um es zu löschen.

Oft müssen Sierecursive delete in a directory ausführen, was bedeutet, dass alle Unterverzeichnisse und Dateien ebenfalls gelöscht werden sollten (siehe Beispiel unten):

Beispiel für rekursives Löschen von Verzeichnissen

Löschen Sie das Verzeichnis mit dem Namen "C:\example-new" sowie alle Unterverzeichnisse und Dateien. Der Code ist selbsterklärend und gut dokumentiert. Er sollte leicht zu verstehen sein.

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());
        }
    }
}

Ergebnis

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