Je suis assez nouveau dans l'utilisation de JS, je vais donc essayer d'être aussi précis que possible :)
J'ai un dossier avec les fichiers de 260 avec différents noms de pays:
Afghanistan.png
,Albania.png
,Algeria.png
, etc.J'ai un fichier .json avec un morceau de code avec tous les codes ISO pour chaque pays comme ceci:
{ "AF": "Afghanistan", "AL": "Albanie", "DZ": "Algérie", ... }
- Je voudrais renommer les fichiers .png avec leur nom ISO en minuscules. Cela signifie que je voudrais avoir l'entrée suivante dans mon dossier avec toutes les
.png
images:af.png
,al.png
,dz.png
, etc.
J'essayais de rechercher par moi-même comment faire cela avec node.js, mais je suis un peu perdu ici et j'apprécierais beaucoup quelques indices.
Merci d'avance!
la source
const obj = require('/path/to/countries.json');
et ensuite:for(var p in obj) {...}
require
code exécute dans ce fichier. Vous introduisez un moyen pour quelqu'un d'injecter potentiellement du code malveillant dans l'application (c'est-à-dire en modifiant le fichier .json). La lecture et l'utilisationJSON.parse()
évitent complètement cela. Ne compromettez pas la sécurité pour écrire un peu moins de code.fs.renameSync(oldPath, newPath);
Traverser
http://nodejs.org/api/fs.html
Une chose importante - vous pouvez également utiliser les fonctions de synchronisation. (Cela fonctionnera comme le programme C)
la source
Pour renommer synchrone, utilisez fs.renameSync
fs.renameSync('/path/to/Afghanistan.png', '/path/to/AF.png');
la source
Pour les OS Linux / Unix, vous pouvez utiliser la syntaxe du shell
const shell = require('child_process').execSync ; const currentPath= `/path/to/name.png`; const newPath= `/path/to/another_name.png`; shell(`mv ${currentPath} ${newPath}`);
C'est ça!
la source
fs.rename
?