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/...