Programa Java para Excluir Diretório Vazio e Não Vazio

Neste exemplo, aprenderemos a excluir um diretório vazio, um diretório não vazio e um diretório com subdiretório não vazio em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Classe de arquivo Java
  • Java Recursion

Exemplo 1: Programa Java para excluir um diretório vazio

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // delete the directory boolean result = directory.delete(); if(result) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

No exemplo acima, usamos o delete()método da Fileclasse para excluir o diretório denominado Directory .

Aqui, se o diretório estiver presente, a mensagem Diretório excluído será exibida. Caso contrário, Diretório não encontrado é mostrado.

Exemplo 2: excluir um diretório não vazio

Em Java, para excluir um diretório não vazio, devemos primeiro excluir todos os arquivos presentes no diretório. Então, podemos excluir o diretório.

 import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // list all the files in an array File() files = directory.listFiles(); // delete each file from the directory for(File file : files) ( System.out.println(file + " deleted."); file.delete(); ) // delete the directory if(directory.delete()) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )

No exemplo acima, usamos o for-eachloop para excluir todos os arquivos presentes no diretório. Uma vez que todos os arquivos foram excluídos, usamos o delete()método para excluir o diretório.

Exemplo 3: Excluir diretório não vazio recursivamente

 import java.io.File; class Main ( public static void deleteDirectory(File directory) ( // if the file is directory or not if(directory.isDirectory()) ( File() files = directory.listFiles(); // if the directory contains any file if(files != null) ( for(File file : files) ( // recursive call if the subdirectory is non-empty deleteDirectory(file); ) ) ) if(directory.delete()) ( System.out.println(directory + " is deleted"); ) else ( System.out.println("Directory not deleted"); ) ) public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); Main.deleteDirectory(directory); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Aqui, suponha que temos um diretório não vazio denominado Directory. O diretório contém 2 arquivos denominados file1.txt e file2.txt e um subdiretório não vazio denominado Subdirectory. Novamente, o subdiretório contém um arquivo denominado file11.txt.

Agora, quando executarmos o programa, obteremos a seguinte saída.

 Directory file1.txt foi excluído Directory file2.txt foi excluído Directory Subdirectory file11.txt foi excluído Directory Subdirectory foi excluído O diretório foi excluído

Aqui, os primeiros 2 arquivos são excluídos e, em seguida, a função recursiva exclui os arquivos dentro do subdiretório. Assim que o subdiretório estiver vazio, ele será excluído. E, finalmente, o diretório é excluído.

Artigos interessantes...