como-manejar-path-ficheros-nodejs

Cómo trabajar con rutas de ficheros con Node.js

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 funcione 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 github-full