Path: Este módulo es muy útil para manejar y manipular rutas de archivos y directorios. Útil para construir rutas absolutas o relativas y evitar problemas de compatibilidad entre sistemas operativos.
Estructura básica de Path:
const path = require('path');
const rutaArchivo = path.join(__dirname, 'archivo.txt');
console.log(`Ruta absoluta del archivo: ${rutaArchivo}`);
Supongamos que estás desarrollando una aplicación que organiza archivos en directorios dinámicamente y necesitas gestionar rutas de manera eficiente.
const path = require('path');
const fs = require('fs');
// Función para crear una estructura de directorios y mover archivos dinámicamente
function organizeFiles(baseDir) {
// Rutas dinámicas de ejemplo
const textDir = path.join(baseDir, 'text-files');
const imageDir = path.join(baseDir, 'image-files');
const othersDir = path.join(baseDir, 'others');
// Asegurarse de que los directorios existen
[textDir, imageDir, othersDir].forEach(dir => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
console.log(`Directorio creado: ${dir}`);
}
});
// Archivos a organizar
const files = fs.readdirSync(baseDir);
files.forEach(file => {
const filePath = path.join(baseDir, file);
const extension = path.extname(file).toLowerCase();
// Saltar directorios en la carpeta base
if (fs.lstatSync(filePath).isDirectory()) return;
// Mover archivos según su extensión
let targetDir;
if (['.txt', '.doc', '.md'].includes(extension)) {
targetDir = textDir;
} else if (['.jpg', '.png', '.gif'].includes(extension)) {
targetDir = imageDir;
} else {
targetDir = othersDir;
}
// Construir la nueva ruta y mover el archivo
const newFilePath = path.join(targetDir, file);
fs.renameSync(filePath, newFilePath);
console.log(`Archivo movido: ${file} -> ${newFilePath}`);
});
}
// Ejecutar la función con un directorio base
const baseDirectory = path.join(__dirname, 'example-folder');
organizeFiles(baseDirectory);
¿Qué hace este código?
-
Organización dinámica de archivos:
- Crea carpetas según el tipo de archivo (texto, imágenes, otros).
- Clasifica los archivos según su extensión.
-
Uso avanzado del módulo
path
:-
path.join
: Ensambla rutas de manera compatible con cualquier sistema operativo. -
path.extname
: Obtiene la extensión de un archivo (por ejemplo,.txt
o.jpg
). -
__dirname
: Obtiene la ruta absoluta del directorio actual.
-
-
Gestión de directorios y archivos:
-
Usa
fs
para verificar si un archivo es un directorio. -
Crea carpetas dinámicamente si no existen
(
fs.mkdirSync
). -
Cambia la ubicación de los archivos
(
fs.renameSync
).
-
Usa
Casos de uso del código
- Organizar automáticamente descargas en carpetas específicas.
- Clasificar archivos en proyectos grandes.
- Preparar datos para procesamiento en otras aplicaciones.
Tags
Node.js