J'ai un dossier avec plusieurs fichiers par exemple. fichiers avec le nom old.html, old.txt, old.json et je veux renommer tous ces fichiers en new.html, new.txt, new.json. Y a-t-il une méthode présente dans le nœud js que je peux utiliser ici?
3 Réponses :
Voici ce que vous recherchez:
const { join, extname, basename } = require('path'); const { readdirSync, renameSync } = require('fs'); for (const oldFile of readdirSync(pathToOldFolder)) { const extension = extname(oldFile); const name = basename(oldFile, extension); if (name === 'old') { renameSync(join(pathToOldFolder, oldFile), join(pathToOldFolder, 'new' + extension)); } }
Vous pourriez utiliser le module FS?
Utilisez ce qui suit pour récupérer une liste de fichiers
fs.rename('oldFile.txt', 'newFile.txt', (err) => { if (err) throw err; console.log('Rename complete!'); });
puis faites une boucle dessus pour renommer les fichiers
fs.readdirSync(testFolder).forEach(file => { console.log(file); });
vérifiez ici , même si cela ne répond pas à vos exigences
Mettez cela en boucle sur les clés et les valeurs de votre objet JSON fraîchement lu, et vous avez un script de changement de nom par lots.
comme {file1: old.txt, file2: old.html, ... ... ...}
fs.readFile('/path/to/countries.json', function(error, data) { if (error) { console.log(error); return; } var obj = JSON.parse(data); for(var p in obj) { fs.rename('/path/to/' + obj[p].split(".")[0] + obj[p].split(".")[1], '/path/to/' + 'new' + obj[p].split(".")[1], function(err) { if ( err ) console.log('ERROR: ' + err); }); } });
stackoverflow.com/questions/22504566/...