El módulo path
de Node.js proporciona utilidades para manejar y transformar rutas de archivos y directorios de forma independiente del sistema operativo.
Es una buena costumbre usar estas funciones, en lugar de ir haciendo dividiendo y concatenando cadenas de texto a mano.
Además, al ser independientes del sistema operativo, tu código funcionará de manera correcta en diferentes sistemas operativos, como Windows, macOS y Linux.
Funciones del módulo Path
Vamos a ver algunas de las funciones más importantes del módulo path
, junto con ejemplos prácticos de cómo utilizarlas.
Unir rutas
La función join
del módulo path
se utiliza para unir varias partes de una ruta en una única ruta completa.
import path from 'node:path';
const ruta1 = '/carpeta1';
const ruta2 = 'subcarpeta/archivo.txt';
const rutaCompleta = path.join(ruta1, ruta2);
console.log('Ruta completa:', rutaCompleta);
Normalizar una ruta
La normalización de rutas es importante para eliminar redundancias y simplificar las rutas. La función normalize
del módulo path
te permite hacer esto de manera sencilla.
import path from 'node:path';
const ruta = '/carpeta1//subcarpeta/./archivo.txt';
const rutaNormalizada = path.normalize(ruta);
console.log('Ruta normalizada:', rutaNormalizada);
// Ruta normalizada: \carpeta1\subcarpeta\archivo.txt
Obtener el nombre de un archivo
La función basename
te permite obtener el nombre base de un archivo de una ruta dada.
import path from 'node:path';
const ruta = '/carpeta1/subcarpeta/archivo.txt';
const nombreBase = path.basename(ruta);
console.log('Nombre del archivo:', nombreBase);
//Nombre del archivo: archivo.txt
Obtener el nombre del directorio
Para obtener el nombre del directorio de una ruta dada, puedes utilizar la función dirname
.
import path from 'node:path';
const ruta = '/carpeta1/subcarpeta/archivo.txt';
const nombreDirectorio = path.dirname(ruta);
console.log('Nombre del directorio:', nombreDirectorio);
//Nombre del directorio: /carpeta1/subcarpeta
Obtener la extensión de un archivo
Con la función extname
, puedes obtener la extensión de un archivo de una ruta dada.
import path from 'node:path';
const ruta = '/carpeta1/subcarpeta/archivo.txt';
const extension = path.extname(ruta);
console.log('Extensión del archivo:', extension);
// Extensión del archivo: .txt
Convertir una ruta relativa en absoluta
Para convertir una ruta relativa en una ruta absoluta, puedes utilizar la función resolve
.
import path from 'node:path';
const rutaRelativa = '../carpeta1/subcarpeta/archivo.txt';
const rutaAbsoluta = path.resolve(rutaRelativa);
console.log('Ruta absoluta:', rutaAbsoluta);
// Ruta absoluta: C:\..lo_que_sea..\carpeta1\subcarpeta\archivo.txt
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github