Programa Java para comprobar si un directorio está vacío o no

El método list() definido en la clase java.io.File que se utiliza para obtener la lista de archivos y carpetas (directorios) presentes en el directorio especificado definido por su nombre de ruta. La lista de archivos se almacena en una array de strings. Si la longitud de una array es mayor que 0, entonces el directorio especificado no está vacío; de lo contrario, está vacío.

Método 1: Uso del método list()

  • Supongamos que hay un directorio presente en la ruta /inicio/usuario/carpeta y tiene tres archivos de texto.
  • Cree una array y almacene el nombre de los archivos usando el método list().
  • Calcular la longitud de una array de strings
  • Imprimir resultado

Vea el siguiente programa para el enfoque anterior.

Java

// Java Program to check if 
// a directory is empty or not
  
import java.io.File;
  
class GFG {
    
    public static void main(String[] args)
    {
        // mention the directory path
        File directory = new File("/home/mayur");
  
        if (directory.isDirectory()) {
            
            // creating a String Array
            // store name of files
            String arr[] = directory.list();
  
            // check if length is greater than 0 or not
            if (arr.length > 0) {
                System.out.println("The directory "
                                   + directory.getPath()
                                   + " is not Empty!");
            }
            else {
                System.out.println("The directory "
                                   + directory.getPath()
                                   + " is Empty!");
            }
        }
    }
}

Producción:

Método 2: uso de DirectoryStream

Java 7 en adelante, se introdujo el método Files.newDirectoryStream que devuelve un DirectoryStream<Path> para iterar sobre todas las entradas en el directorio.

  • Supongamos que hay un directorio presente en la ruta /inicio/usuario/carpeta y tiene tres archivos de texto.
  • Cree una función booleana que verifique si el directorio está vacío o no
  • Si una ruta dada es un archivo, lanza una excepción
  • Si un directorio dado tiene archivos, devuelve falso o verdadero.
  • Imprime el resultado

Vea el siguiente programa para el enfoque anterior.

Java

// Java Program to check if a
// directory is empty or not
  
import java.io.File;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
  
public class GFG {
    
    // boolean function which
    // return true if directory is
    // empty else return false
    public static boolean isEmptyDirectory(File directory)
        throws IOException
    {
        // check if given path is a directory
        if (directory.exists()) {
            if (!directory.isDirectory()) {
  
                // throw exception if given path is a
                // file
                throw new IllegalArgumentException(
                    "Expected directory, but was file: "
                    + directory);
            }
            else {
                // create a stream and check for files
                try (DirectoryStream<Path> directoryStream
                     = Files.newDirectoryStream(
                         directory.toPath())) {
                    // return false if there is a file
                    return !directoryStream.iterator()
                                .hasNext();
                }
            }
        }
        // return true if no file is present
        return true;
    }
  
    public static void main(String[] args)
        throws IOException
    {
        // enter path of directory
        File directory = new File("/home/mayur");
  
        // call isEmptyDirectory Function
        if (isEmptyDirectory(directory)) {
            System.out.println("The directory "
                               + directory.getPath()
                               + " is Empty!");
        }
        else {
            System.out.println("The directory "
                               + directory.getPath()
                               + " is Not Empty!");
        }
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *