Java java.nio.file.Files createDirectory()Método
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
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/SFileAlreadyExistsException: si el directorio ya existeSecurityException: si no hay permisos suficientes para crear el directorio
Ejemplo de uso básico
Ejemplo
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.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
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
- Verificar si el directorio existe: antes de intentar crear, se puede usar
Files.exists(path)para verificar - Manejar todas las excepciones posibles: especialmente
FileAlreadyExistsExceptionyNoSuchFileException - **Considere usar createDirectories()**: si necesita crear directorios de varios niveles
- 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 java.nio.file.Files