Trabajar con carpetas en Node

Cómo interactuar con carpetas usando Node

El Node.jsfsEl módulo principal proporciona muchos métodos útiles que puede utilizar para trabajar con carpetas.

Comprueba si existe una carpeta

Usarfs.access()para verificar si la carpeta existe y Node puede acceder a ella con sus permisos.

Crear una nueva carpeta

Usarfs.mkdir()ofs.mkdirSync()para crear una nueva carpeta.

const fs = require('fs')

const folderName = ‘/Users/flavio/test’

try { if (!fs.existsSync(dir)){ fs.mkdirSync(dir) } } catch (err) { console.error(err) }

Leer el contenido de un directorio

Usarfs.readdir()ofs.readdirSyncpara leer el contenido de un directorio.

Este fragmento de código lee el contenido de una carpeta, tanto archivos como subcarpetas, y devuelve su ruta relativa:

const fs = require('fs')
const path = require('path')

const folderPath = ‘/Users/flavio’

fs.readdirSync(folderPath)

Puede obtener la ruta completa:

fs.readdirSync(folderPath).map(fileName => {
  return path.join(folderPath, fileName)
}

También puede filtrar los resultados para devolver solo los archivos y excluir las carpetas:

const isFile = fileName => {
  return fs.lstatSync(fileName).isFile()
}

fs.readdirSync(folderPath).map(fileName => { return path.join(folderPath, fileName) }).filter(isFile)

Cambiar el nombre de una carpeta

Usarfs.rename()ofs.renameSync()para cambiar el nombre de la carpeta. El primer parámetro es la ruta actual, el segundo es la nueva ruta:

const fs = require('fs')

fs.rename(’/Users/flavio’, ‘/Users/roger’, err => { if (err) { console.error(err) return } //done })

fs.renameSync()es la versión sincrónica:

const fs = require('fs')

try { fs.renameSync(’/Users/flavio’, ‘/Users/roger’) } catch (err) { console.error(err) }

Quitar una carpeta

Usarfs.rmdir()ofs.rmdirSync()para eliminar una carpeta.

Eliminar una carpeta que tiene contenido puede ser más complicado de lo que necesita.

En este caso recomiendo instalar elfs-extramódulo, que es muy popular y está bien mantenido, y es un reemplazo directo delfsmódulo, proporcionando más funciones además de él.

En este caso elremove()El método es lo que quieres.

Instálelo usando

npm install fs-extra

y utilícelo así:

const fs = require('fs-extra')

const folder = ‘/Users/flavio’

fs.remove(folder, err => { console.error(err) })

También se puede usar con promesas:

fs.remove(folder).then(() => {
  //done
}).catch(err => {
  console.error(err)
})

o con async / await:

async function removeFolder(folder) {
  try {
    await fs.remove(folder)
    //done
  } catch (err) {
    console.error(err)
  }
}

const folder = ‘/Users/flavio’ removeFolder(folder)

Descarga mi gratisManual de Node.js


Más tutoriales de nodos: