Node.js lui-même ne fournit pas d'API pour copier directement des fichiers. Si vous souhaitez utiliser Node.js pour copier des fichiers ou des répertoires, vous devez utiliser d'autres API pour y parvenir. Pour copier un seul fichier, vous pouvez utiliser directement readFile et writeFile, ce qui est plus simple. Si vous copiez tous les fichiers d'un répertoire, celui-ci peut également contenir des sous-répertoires, vous devez alors utiliser une API plus avancée.
Diffusez
Les flux sont la façon dont Node.js déplace les données. Les flux dans Node.js sont lisibles/inscriptibles. Les modules HTTP et du système de fichiers utilisent des flux. Dans le système de fichiers, lors de l'utilisation de flux pour lire des fichiers, un fichier volumineux peut ne pas être lu en une seule fois, mais sera lu plusieurs fois. Les événements de données recevront une réponse lors de la lecture. Après la lecture, vous pouvez opérer sur les données lues. De la même manière, lors de l'écriture dans un flux, tout comme lors de la lecture, les fichiers volumineux ne sont pas écrits en même temps. Cette façon de déplacer des données est très efficace, en particulier pour les fichiers volumineux, l'utilisation de flux est beaucoup plus rapide que d'attendre que l'intégralité du fichier volumineux soit lue avant de l'exploiter.
Pipeline
Si vous souhaitez un contrôle total lors de la lecture et de l'écriture de flux, vous pouvez utiliser des événements de données. Mais pour la copie pure de fichiers, les flux de lecture et d'écriture peuvent transmettre des données via des canaux.
Application pratique :
paths.forEach(function( path ){
var _src = src '/' path,
_dst = dst '/' path,
lisible, inscriptible ;
stat( _src, function( err, st ){
if( err ){
throw err;
}
Stream( _src );
Stream
}
depuis 🎜> });
});
} ;
// Avant de copier le répertoire, vous devez déterminer si le répertoire existe. S'il n'existe pas, vous devez d'abord créer le répertoire
var exist = function( src, dst, callback ){
fs.exists( dst, function( exist ) {
fs.mkdir( dst , function(){
de rappel ( src, heure d'été );
//Copier le répertoire
existe( './src', './build', copy );