Travailler avec des dossiers dans Node

Comment interagir avec les dossiers à l'aide de Node

Le Node.jsfsLe module principal fournit de nombreuses méthodes pratiques que vous pouvez utiliser pour travailler avec des dossiers.

Vérifier si un dossier existe

Utilisationfs.access()pour vérifier si le dossier existe et si Node peut y accéder avec ses autorisations.

Créer un nouveau dossier

Utilisationfs.mkdir()oufs.mkdirSync()pour créer un nouveau dossier.

const fs = require('fs')

const folderName = ‘/Users/flavio/test’

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

Lire le contenu d'un annuaire

Utilisationfs.readdir()oufs.readdirSyncpour lire le contenu d'un répertoire.

Ce morceau de code lit le contenu d'un dossier, à la fois les fichiers et les sous-dossiers, et renvoie leur chemin relatif:

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

const folderPath = ‘/Users/flavio’

fs.readdirSync(folderPath)

Vous pouvez obtenir le chemin complet:

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

Vous pouvez également filtrer les résultats pour ne renvoyer que les fichiers et exclure les dossiers:

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

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

Renommer un dossier

Utilisationfs.rename()oufs.renameSync()pour renommer le dossier. Le premier paramètre est le chemin actuel, le second le nouveau chemin:

const fs = require('fs')

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

fs.renameSync()est la version synchrone:

const fs = require('fs')

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

Supprimer un dossier

Utilisationfs.rmdir()oufs.rmdirSync()pour supprimer un dossier.

La suppression d'un dossier contenant du contenu peut être plus compliquée que nécessaire.

Dans ce cas, je recommande d'installer lefs-extramodule, qui est très populaire et bien entretenu, et c'est un remplacement instantané dufsmodule, offrant plus de fonctionnalités en plus.

Dans ce cas, leremove()la méthode est ce que vous voulez.

Installez-le en utilisant

npm install fs-extra

et utilisez-le comme ceci:

const fs = require('fs-extra')

const folder = ‘/Users/flavio’

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

Il peut également être utilisé avec des promesses:

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

ou avec async / await:

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

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

Téléchargez mon gratuitManuel de Node.js


Plus de didacticiels sur les nœuds: