Manejar rutas de archivos y directorios - Módulo Path de Node.js

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}`);
JavaScript

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);
JavaScript

 

¿Qué hace este código?

  1. 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.
  2. 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.
  3. 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).

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.

 

 

 

 

 

 

Destacado

Frontend con Menú y Submenú

 Usaremos HTML, CSS y JavaScript para crear el menú dinámico que se cargará en todas las ventanas. Estas se comunicarán con el backend ...