Maison  >  Article  >  interface Web  >  En savoir plus sur l'écriture de dossiers dans Node.js

En savoir plus sur l'écriture de dossiers dans Node.js

青灯夜游
青灯夜游avant
2020-12-07 17:51:363426parcourir

Cet article vous présentera l'écriture de dossiers dans Node.js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

En savoir plus sur l'écriture de dossiers dans Node.js

Recommandations associées : "tutoriel node js"

fs.Dir & fs.Dirent

fs.Dir est la classe du flux de répertoire itérable, fs.Dirent est l'élément de répertoire obtenu en parcourant fs.Dir, qui peut être un fichier ou un sous-répertoire dans le répertoire

fs.Dir

  • dir.path : Le chemin en lecture seule du répertoire
  • dir.read() : Si la fonction callabck n'est pas transmise, elle renvoie une Promesse, lit le répertoire suivant élément de l'itérateur, renvoie une promesse, résout Enfin, obtenez fs.Dirent ou null (s'il n'y a plus d'entrées de répertoire à lire)
  • dir.close() : Si la fonction callabck n'est pas transmise, Promise est renvoyé et le handle de ressource sous-jacent du répertoire est fermé

fs.Dirent

  • dirent.name
  • dirent.isDirectory()
  • dirent.isFile()
  • dirent.isSymbolicLink()

fs.opendir

fs.opendir(path[, options], callback) Ouvre un répertoire et renvoie le fs Objet .Dir

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  for await (const dirent of dir) {
    console.log(dirent.name);
  }
}
print('./').catch(console.error);

qui peut être passé via dir.read() Itérer dir

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  let dirent = await dir.read();
  while (dirent) {
    console.log(dirent.name);
    dirent = await dir.read();
  }

  dir.close();
}
print('./').catch(console.error);

fs.readdir

fs.readdir(path[, options], callback) pour lire le contenu du répertoire. le rappel a deux paramètres (err, files), où files est le nom du fichier (à l'exclusion de '.' et '..') options

<.>encoding : valeur par défaut utf8, si l'encodage est défini sur 'buffer', le nom du fichier renvoyé est Buffer Object
  • withFileTypes : la valeur par défaut est false Après l'avoir défini sur true, le tableau des fichiers de fonction de rappel contiendra. Objet fs.Dirent
  • const fs = require('fs/promises');
    
    async function print(path) {
      const files = await fs.readdir(path);
      for (const file of files) {
        console.log(file);
      }
    }
    print('./').catch(console.error);
  • fs.mkdir

Répertoire créé

optionsfs.mkdir(path[, options], callback)

récursif : La valeur par défaut est fausse. défini sur true, la commande
    créera un répertoire qui n'existe pas.
  • mkdir -pmode : La valeur par défaut est 0o777, Windows ne prend pas en charge
  • // 创建 /tmp/a/apple 目录,无论是否存在 /tmp 和 /tmp/a 目录。
    fs.mkdir('/tmp/a/apple', { recursive: true }, err => {
      if (err) throw err;
    });
  • fs.rmdir<.>

fs.rmdir pour supprimer des dossiers

options

fs.rmdir(path[, options], callback)
récursive : valeur par défaut false, si vrai, effectue une suppression récursive du répertoire. En mode récursif, ne signalez pas d'erreur si le chemin n'existe pas, et réessayez l'opération en cas d'échec

    retryDelay : Par défaut 100, le nombre de millisecondes à attendre entre les tentatives après une exception. Si l'option récursive n'est pas vraie, cette option est ignorée
  • maxRetries : La valeur par défaut est 0, indiquant le nombre de tentatives après qu'une exception se produit si une erreur EBUSY, EMFILE, ENFILE, ENOTEMPTY ou EPERM est rencontrée. , Node. js réessayera l'opération avec un intervalle linéaire de retryDelay millisecondes à chaque tentative. Si récursif est faux, cette option est ignorée
const fs = require('fs');

fs.rmdir('./tmp', { recursive: true }, err => console.log);
  • Auparavant, rmdir ne pouvait supprimer que les dossiers vides, mais maintenant il peut les supprimer avec les fichiers

    Plus Pour des connaissances liées à la programmation, veuillez visiter :

    Enseignement de la programmation
     ! !

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

  • Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer