0
votes

Utilisation de node.js comment renommer tous les fichiers d'un dossier

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 :


2
votes

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));
    }
}


0 commentaires

1
votes

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);
});


0 commentaires

1
votes

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);
        });
    }
});


0 commentaires