L'essentiel de Node.js

Renommer et supprimer des répertoires

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Tout comme pour les fichiers, vous avez la possibilité de supprimer et de renommer des dossiers avec les outils de gestion.
06:50

Transcription

Alors, ce qui est génial avec le rename qu’on a déjà vu juste avant, renameSync ici, c’est que ça fait pas que du renommage. Eh ouais, je vous ai un petit peu menti, ça fait également du renommage et du changement de dossier, alors je vais m’expliquer. Là on va regarder avec ls qui, effectivement, on a bien le dossier lib. Alors imaginons que dans le dossier lib ici, j’ai un autre dossier qui s’appelle assets et que ce dossier assets, j’ai envie de le déplacer avec node et de le mettre de lib, assets vers directement notre répertoire courant. Eh bien c’est possible. Avec renameSync, évidement vous aller pouvoir faire juste un renommage, bon, par exemple, ça pourrait être : lib/assets vers lib/lib. Allez hop ! Comme ça, ça va marcher, donc on va lancer ça et effectivement on se rendra compte que de lib/assets, on est passé a lib/lib. On va le rechanger un lib/lib, lib/assets évidement. C’était pour l’exemple, donc on peut faire du renommage classique à l’intérieur d’un répertoire ou même directement dans le répertoire courant, ça, c'est pas un problème, donc on voit que le renommage c’est facile mais on peut aussi le modifier. C'est-à dire que je pourrais me dire que les assets que j’ai dans le dossier lib, j’ai envie de les déplacer. Alors, déplacement et renommage, ça se fait carrément en même temps on n'est pas obligé de garder les mêmes noms, on pourrait le renommer différemment, ce serait pas un problème, et ça, c’est génial parce que regardez, hop ! On va déplacer le dossier d’assets et alors la bouger et on l'a mis directement à la racine. Je peux le remettre dans lib sans aucun problème, c'est-à-dire que là, vous allez pouvoir travailler très facilement pour faire de la réorganisation de dossier. Alors du coup, maintenant comment je fais pour supprimer ? Pour supprimer un dossier, ce n’est pas très compliqué, il faut faire un rmdir: rmdir, comme ça, alors bien sûr, on a les deux : rmdir classique ou rmdirSync, rmdir classique bah, c’est directement et puis rmdirSync, ça va être forcément du synchrone. Si je fait rmdir comme ça, ça veut dire que je m’attends à passer une fonction à l’intérieur. Ce qui peut être intéressant dans le cas des erreurs, on l'avait déjà vu, avec les erreurs, on va pouvoir travailler. Imaginons que j’envoie comme ça un rmdirSync et je que lui dise de me supprimer les assets, est ce qu'il va vouloir ? Non, il ne va pas vouloir. Vous savez pourquoi ? Parce que pour lui, assets n’existe pas, il faut lui envoyer lib, sinon il faut aller chercher les assets. On va faire ça et là, on va avoir une erreur, très intéressante, supplémentaire : le répertoire n’est pas vide. Alors ça c’est embêtant parce que dans le cas où vous avez un répertoire avec des fichiers ou des dossiers à l’intérieur, il va falloir le vider d’abord, on na pas le choix, c’est comme ça. Pour bien comprendre, on va essayer de supprimer assets mais on va mettre à l’intérieur d’assets, un nouveau fichier test.txt. Alors bien sûr, on va avoir le même comportement. C'est-à-dire qu'on ne peut pas supprimer un dossier qui n’est pas vide. Comment du coup on va se débrouiller pour réussir à supprimer un dossier si ce n’est pas un dossier vide ? Bah, ce qu’il faudrait faire tout simplement, ce serait ce qu’on a déjà vu avant, une lecture du répertoire, donc on va faire un readdir, vous vous souvenez, sync, et puis de cette lecture, on va d’abord supprimer tout ce qui se trouve dans le dossier. Pour que ce soit plus simple, on va se faire une Var en haut, puis il va s’appeler dir, et on va mettre ce répertoire dedans, comme ça on pourra l’envoyer, ce sera beaucoup plus simple. Là maintenant, est ce qu’on va pouvoir faire quelque chose de sympa ? Bah oui, alors si je le mets ici en Sync c’est parce que j’ai envie que ce soit fait automatiquement hein, que la suppression des différents fichiers se trouvant dans mon dossier se fasse automatiquement. Et je vais pouvoir ici câbler un forEach parce que j’ai envie de faire un forEach des différents fichiers qui se trouvent dans mon dossier et ces fichiers-là, je vais vouloir maintenant les supprimer, ça va faire quoi ? Bah ça va faire tout simplement ici, filename et puis on va pouvoir simplement supprimer ce fichier, ça, vous l’avez déjà fait, vous savez comment ça fonctionne. C’est le fameux unlink, et pour faire le unlink, on va d’abord simplement préparer le chemin. Le chemin, ça va être quoi ? Le chemin, ça va être le répertoire, dir, et puis ça va être quoi ensuite derrière le répertoire ? Eh bien, ça va être le nom du fichier, le filename. Alors le filename, vous pensez bien aussi à le mettre dans cette dynamique, donc, filename comme ça. Là, on a notre chemin qui est prévu, qui est constitué et qu’on peut utiliser. Ici, on va mettre le file finale, comme ça, ce sera plus sympa et puis maintenant, bah il va falloir réellement supprimer cette variable. Attention à bien respecter le formatage en ES 6, sinon vous allez avoir des problèmes. Comment on supprime ce fichier ? Souvenez-vous, fs.unlink , on va faire ça synchro et on va lui donner le file à supprimer. Alors, ce qui est bien, c'est qu’avec cette itération, vous allez d’abord vider tous les fichiers existant dans le répertoire. Une fois que ce sera fait puisque ça c’est Sync, donc ça veut dire que ça va s’exécuter Eh bien hop, il passera à la suppression du répertoire derrière. Si ça fonctionne, on ne devrait pas avoir de problème. Ici, on a bien supprimé et le dossier des assets et surtout ce qu’il contenait à l’intérieur. Je suis désolé hein, on est obligé de faire comme ça. Vous serez obligé de travailler bien évidement vos différents dossiers et supprimer d’abord le contenu avant de faire la suppression s’il y a du contenu dans ces dossiers-là. Pensez bien à mettre en place ce genre de logique parce que c’est quasiment obligatoire si on a envie de faire des suppressions de dossiers efficaces. Bien sûr, on a un cas supplémentaire, c’est comment je supprime du coup, des dossiers dans des dossiers parce que là on vient de voir les files, mais si c’est un dossier, ça veut dire qu'il faut que je fasse non pas un unlink mais un rm. Souvenez-vous, vous pouvez vérifier, bien sûr avec fs si c’est un fichier, et à ce moment-là, vous changerez la logique de suppression. Donc il y a pas mal de petites choses à mettre en place, ça, c’est un exemple pratique, vous pourriez créer un répertoire avec des fichiers et des dossiers, et vous entrainer à coder une fonctionnalité particulière qui pourrait, pourquoi pas, réagir à la ligne de commande ici. Un utilisateur pourrait dire remove comme ça, directement dans le node, une fois que votre processus est lancé, et vous pourriez enchainer les différentes fonctionnalités. Je vous laisse un peu d’exercice. Évidemment, on ne va pas tout faire ensemble quand même. Là vous avez les grandes bases, mais il faut que vous vous amusiez un peu. Essaiez de développer un petit script comme ça, qui vous permette de supprimer fichiers et dossiers, et qui permette de switcher facilement entre les deux suppressions : le unlink pour les fichiers, le rmdir pour les dossiers.

L'essentiel de Node.js

Exploitez les possibilités de Node.js et créez des applications côté serveur entièrement en JavaScript. Travaillez avec des requêtes web, gérez le protocole WebSocket, etc.

4h00 (44 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Node.js Node.js 7.0
Spécial abonnés
Date de parution :26 déc. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !