Plusieurs façons de copier des fichiers dans Node.js
Dans Node.js, il existe plusieurs façons de copier des fichiers. Examinons les méthodes possibles et analysons chacune d’elles. Ceci est mon 44e article sur Medium.
Le copyFile()
fonction, qui peut copier un fichier directement dans le répertoire de vacation spot, effectue l’motion la plus easy.
fs.copyFile('./knowledge.txt', './dest/information.txt');
La méthode ci-dessus copie de manière asynchrone le fichier de src vers dest. Si dest existe déjà, il est écrasé par défaut. Il n’y a pas d’arguments passés à la fonction de rappel au-delà de toute exception attainable. Node.js ne garantit pas que les opérations de copie sont atomiques. Node.js tentera de supprimer le fichier cible si une erreur se produit après l’ouverture du fichier cible en écriture.
Il y a un inconvénient lorsque nous utilisons la méthode ci-dessus. Si le répertoire cible n’existe pas alors une exception sera levée automobile le répertoire cible doit exister (la méthode ne créera pas automatiquement le répertoire cible). Par conséquent, avant d’utiliser la méthode ci-dessus, l’utilisateur doit valider si le répertoire cible existe définitivement ou non ? Si le répertoire cible n’existe pas, l’utilisateur peut utiliser fs.mkdir()
ou fs.mkdirSync()
pour créer le répertoire cible. copyFile()
la méthode ne peut pas copier les répertoires.
De cette façon, lisez le contenu du fichier supply puis écrivez dans le fichier cible. Si le contenu du fichier supply doit être modifié lors de la copie, cette méthode convient
L’inconvénient de cette méthode est le même que ci-dessus copyFile()
méthode. readFile()
méthode est utilisée pour lire le contenu du fichier supply et writeFile()
La méthode peut uniquement écrire des fichiers dans des répertoires existants. En utilisant cette méthode, nous ne pouvons pas copier les répertoires. Le contenu peut être modifié tout en étant copié est l’avantage d’utiliser cette méthode.
readFile()
méthode et writeFile()
méthode sont l’ensemble du bloc de données d’opération. Si la taille du fichier est importante, la méthode ci-dessus mettra plus de pression sur les ressources système. createReadStream()
et createWriteStream()
est d’utiliser la voie du flux pour manipuler les données.
fs.createReadStream('./knowledge.txt').pipe(fs.createWriteStream(`./information.txt`));
Le nouveau fs.cp()
La méthode a été ajoutée depuis la model 16.7.0 de Node.js. En utilisant cette méthode, la construction entière du répertoire, y compris les sous-répertoires et les fichiers, peut être copiée de manière asynchrone de src à dest. fs.cp()
La méthode peut copier un fichier ou un répertoire. La configuration est recursive
La propriété doit être définie sur true si une copie de répertoire est requise.
Pour copier des fichiers
Pour copier le répertoire, y compris les sous-répertoires et les fichiers.
Comme vous pouvez le voir, cela fs.cp()
méthode est bien meilleure que les 3 méthodes ci-dessus.
- Le répertoire dest n’a pas besoin d’exister. Le répertoire dest sera automatiquement créé s’il n’existe pas déjà (quel que soit le niveau d’un répertoire)
- Vous pouvez copier complètement les fichiers dans le file entier, y compris les sous-répertoires, sans les copier récursivement séparément.
Lorsque vous allez utiliser cette méthode, vous devez d’abord confirmer la model de Node.js !
Que faire si vous souhaitez copier tous les fichiers du file mais que vous n’avez qu’une model inférieure de Node.js ? Nous pouvons copier récursivement certains fichiers en plus de la commande native cp pour Linux, qui est traitée dans la part suivante :
Remark utiliser:
copyDir('./part', './web page/residence');
Pour exécuter des commandes natives Linux, nous pouvons utiliser le exec
ou spawn
commandes dans child_process
. Pour copier des fichiers ou des répertoires, le commande cp sous Linux est utilisé.
Vous pouvez utiliser les 5 méthodes ci-dessus si vous utilisez la dernière model de nœud. En utilisant le module fs dans le nœud, j’ai partagé les moyens les plus rapides de copier un fichier/répertoire. Nous avons complètement examiné les méthodes asynchrones auxquelles nous avons accédé by way of le module fs de Node.js.
Inscrivez-vous à notre e-newsletter hebdomadaire gratuite. Suivez-nous sur Twitter, LinkedIn, Youtubeet Discorde.
Vous cherchez à faire évoluer votre startup logicielle ? Vérifier Circuit.