Java java.nio.file.Files createDirectory()Método

Java File Java java.nio.file.Files


java.nio.file.Files.createDirectory()es un método práctico del paquete Java NIO (New I/O) para crear un nuevo directorio. Pertenece a lajava.nio.file.Filesclase de utilidad, que proporciona una forma sencilla y segura de crear un solo directorio.

Definición del método

public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException

Descripción de parámetros

  • dir: la ruta del directorio a crear (objeto Path)
  • attrs(Opcional): una lista opcional de FileAttribute para establecer atributos del directorio (como permisos)

Valor de retorno

Devuelve el objeto Path del directorio creado

Excepciones

  • IOException: si se produce un error de E/S
  • FileAlreadyExistsException: si el directorio ya existe
  • SecurityException: si no hay permisos suficientes para crear el directorio

Ejemplo de uso básico

Ejemplo

import java.nio.file.*;

public class CreateDirectoryExample {
    public static void main(String[] args) {
        Path path = Paths.get("C:/test/new_directory");
       
        try {
            Files.createDirectory(path);
            System.out.println("Directorio creado con éxito: " + path);
        } catch (IOException e) {
            System.err.println("Error al crear el directorio: " + e.getMessage());
        }
    }
}

Características del método

1. Crear un solo directorio

createDirectory()Solo puede crear un solo directorio; si el directorio padre en la ruta no existe, se lanzaráNoSuchFileException。

2. Operación atómica

La creación del directorio es una operación atómica: o tiene éxito por completo o falla por completo.

3. Verificación de existencia del directorio

Si el directorio ya existe, el método lanzaráFileAlreadyExistsException。


Diferencia con createDirectories()

FilesLa clase también proporciona el métodocreateDirectories(); las principales diferencias entre ambos son:

Característica createDirectory() createDirectories()
Crear un solo directorio Sí Sí
Crear directorios de varios niveles no Sí
Cuando el directorio padre no existe Lanza excepción Crea automáticamente el directorio padre
Cuando el directorio ya existe Lanza excepción No lanza excepción

Uso avanzado

1. Establecer atributos de directorio

Ejemplo

import java.nio.file.attribute.PosixFilePermissions;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Set;

Path path = Paths.get("/path/to/new_directory");
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);

Files.createDirectory(path, attr);

2. Manejo de excepciones

Ejemplo

try {
    Files.createDirectory(path);
} catch (FileAlreadyExistsException e) {
    System.err.println("El directorio ya existe: " + path);
} catch (NoSuchFileException e) {
    System.err.println("El directorio padre no existe: " + e.getFile());
} catch (IOException e) {
    System.err.println("Otro error de E/S: " + e.getMessage());
}

Buenas prácticas

  1. Verificar si el directorio existe: antes de intentar crear, se puede usarFiles.exists(path)para verificar
  2. Manejar todas las excepciones posibles: especialmenteFileAlreadyExistsExceptionyNoSuchFileException
  3. **Considere usar createDirectories()**: si necesita crear directorios de varios niveles
  4. Establecer permisos adecuados: especialmente en sistemas multiusuario

Resumen

Files.createDirectory()es el método recomendado en Java NIO para crear un solo directorio. Proporciona, en comparación con el tradicionalFile.mkdir()características más completas y un mejor manejo de excepciones. Entender este método y su diferencia concreateDirectories()puede ayudar a los desarrolladores a manejar las operaciones del sistema de archivos de manera más eficiente.

Java File Java java.nio.file.Files

Otras extensiones