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.txtObtener 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.txtObtener 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/subcarpetaObtener 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: .txtConvertir 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.txtDescarga el código
Todo el código de esta entrada está disponible para su descarga en Github