Node.js selbst stellt keine API zum direkten Kopieren von Dateien bereit. Wenn Sie Node.js zum Kopieren von Dateien oder Verzeichnissen verwenden möchten, müssen Sie dazu andere APIs verwenden. Um eine einzelne Datei zu kopieren, können Sie readFile und writeFile direkt verwenden, was einfacher ist. Wenn Sie alle Dateien in ein Verzeichnis kopieren und das Verzeichnis möglicherweise auch Unterverzeichnisse enthält, müssen Sie eine erweiterte API verwenden.
Streamen
Streams sind die Art und Weise, wie Node.js Daten verschiebt. Sowohl HTTP- als auch Dateisystemmodule verwenden Streams. Wenn im Dateisystem Streams zum Lesen von Dateien verwendet werden, kann es sein, dass eine große Datei nicht auf einmal, sondern mehrmals gelesen wird. Beim Lesen wird auf Datenereignisse reagiert. Nach dem Lesen können Sie die gelesenen Daten bearbeiten. Ebenso werden beim Schreiben in einen Stream, genau wie beim Lesen, große Dateien nicht auf einmal geschrieben. Diese Art der Datenverschiebung ist besonders bei großen Dateien sehr effizient. Die Verwendung von Streams ist viel schneller, als darauf zu warten, dass die gesamte große Datei gelesen wird, bevor die Datei bearbeitet wird.
Pipeline
Wenn Sie beim Lesen und Schreiben von Streams vollständige Kontrolle wünschen, können Sie Datenereignisse verwenden. Beim reinen Kopieren von Dateien können Lese- und Schreibströme jedoch Daten über Pipes übertragen.
Praktische Anwendung:
paths.forEach(function( path ){
var _src = src '/' path,
_dst = dst '/' path,
lesbar, beschreibbar;
stat( _src, function( err, st ){
if( err ){
throw err;
}
Stream( _src. );
Stream
seit 🎜> });
});
} ;
// Bevor Sie das Verzeichnis kopieren, müssen Sie feststellen, ob das Verzeichnis existiert. Wenn es nicht existiert, müssen Sie zuerst das Verzeichnis erstellen
var exist = function( src, dst, callback ){
fs.exists( dst, function( exist ) {
Rückruf( src, dst );
//Verzeichnis kopieren
exists( './src', './build', copy );