Heim > Web-Frontend > js-Tutorial > Hauptteil

Node.JS führt eine Schleife durch, um alle Dateien in nicht leeren Ordnern und Unterverzeichnissen zu löschen

亚连
Freigeben: 2018-05-31 10:23:10
Original
2368 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich der Beispielcode von Node.JS vorgestellt, der nicht leere Ordner und alle Dateien in Unterverzeichnissen zyklisch löscht, und von node.js, der nicht leere Ordner rekursiv löscht. Freunde in Not können darauf verweisen

Kürzlich Ich möchte eine Funktion zum Durchlaufen von Ordnern implementieren. Der Ordner ist möglicherweise nicht leer, enthält jedoch möglicherweise auch Unterordner und Dateien. Ich habe jedoch einige vorhandene Bibliotheken gefunden, von denen jedoch kein Löschfortschritt angezeigt wird. Also habe ich selbst eines geschrieben.

var fs  = require('fs')
var path = require('path')

var remove = function(tarPath, cb, removeStates) {
 if (!removeStates) {
  removeStates = { cur: 0, all: 0 }
 } else {
  if (!removeStates.cur) {
   removeStates.cur = 0;
  }
  if (!removeStates.all) {
   removeStates.all = 0;
  }
 }
 removeStates.all++;
 fs.stat(tarPath, function(err, states) {
  removeStates.cur++;
  if (err) {
   cb && cb()
   return
  }
  if (states.isDirectory()) {
   fs.readdir(tarPath, function(err, files) {
    if (err) {
     console.log(err)
     cb && cb()
     return
    }
    if (files.length < 1) {
     fs.rmdir(tarPath, cb)
     return
    }
    var count  = 0
    var checkEnd = function() {
     if (++count == files.length) {
      fs.rmdir(tarPath, cb)
     }
    }
    files.forEach(function(file) {
     remove(path.join(tarPath, file), checkEnd, removeStates)
    })
   })
  } else {
   fs.unlink(tarPath, function(err) {
    if (err) {
     console.log(err)
    }
    cb && cb()
    return
   })
  }
 })
 return removeStates
}
Nach dem Login kopieren

Es ist einfach zu bedienen

var states = remove(&#39;./testdir&#39;, function() {
  console.log(&#39;delete complete&#39;)
  clearInterval(checkTimer)
});
var checkTimer = setInterval(function() {
  console.log(states)
}, 500);
Nach dem Login kopieren

Ausgabeergebnis:

node remove.js
{ cur: 546, all: 546 }
delete complete
Nach dem Login kopieren

PS: Werfen wir einen Blick auf NodeJs, das nicht leere Ordner rekursiv löscht

Dieser Artikel ist der Wenn ich es zum ersten Mal verwende, meldet fs.unlink() beim Löschen eines Ordners den Fehler „Fehler: EPERM: Vorgang nicht zulässig, Verknüpfung aufheben“. Dies liegt daran, dass fs.unlink() nur Dateien löschen kann.

fs.rmdir() oder fs.rmdirSync() Benutzer löschen leere Ordner, fs.unlink() oder fs.unlinkSync() wird zum Löschen von Dateien verwendet, sodass das Löschen nicht leerer Ordner eine Rekursion erfordert.

function deleteFolderRecursive(path) {
  if( fs.existsSync(path) ) {
    fs.readdirSync(path).forEach(function(file) {
      var curPath = path + "/" + file;
      if(fs.statSync(curPath).isDirectory()) { // recurse
        deleteFolderRecursive(curPath);
      } else { // delete file
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(path);
  }
};
Nach dem Login kopieren

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

vue lädt benutzerdefinierte JS-Dateimethode

Instanz der Funktionsausführung nach Verlassen der Vue-Seite

Nutzung des Vue-Karussell-Plug-ins vue-concise-slider


Das obige ist der detaillierte Inhalt vonNode.JS führt eine Schleife durch, um alle Dateien in nicht leeren Ordnern und Unterverzeichnissen zu löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!