Bonjour,

Je cherche à réutiliser le nom du fichier retourné dans l'événement d'un fs.readFile().

Dans le code ci-dessous, la trace m'indique toujours le nom du dernier fichier pour la variable file...
Savez-vous pourquoi ? Et comment corriger le problème ?

Mon objectif est de scanner un répertoire, de récupérer des données dans les fichiers trouvés et d'écrire ces données et le nom du fichier dans un nouveau fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var fs = require('fs');
var path = require('path');
 
var dir = path.join(__dirname, 'files');
 
fs.readdir(dir, function(err, items) {
  if (err) throw err;
  for (var i=0; i<items.length; i++) {
    var file = path.join(dir, items[i]);
 
    fs.readFile(file, 'utf8', function(err, data) {
      if (err) throw err;
      console.log(path.basename(file));
    });
  }
});
Pour un dossier contenant : file1.txt, file2.txt et file3.txt
La trace sera
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
file3.txt
file3.txt
file3.txt
Merci pour votre aide.