Ozan
Ozan

Reputation: 1762

Error: ENOENT: no such file or directory

I am trying to get get the folder path from user's selection and for each file I read it and return the data. However upon getting the file I cannot read the data for some reason that I have't been able to understand yet. The directory I am trying to read and render do exist. I have referred to the other similar posts as well.

readFolder() {
    dialog.showOpenDialog({ properties: ['openDirectory'] }, (dirFiles) => {
      console.log(dirFiles);
      if (dirFiles === undefined) {
        console.log('No file ');
        return;
      }
      const pathName = dirFiles[0];
      fs.readdir(pathName, (err, files) => {
        files.forEach(file => {
          fs.readFile(file, 'utf-8', (err, data) => {
            if (err) {
              console.log(`something went wrong  ${err}`);
            } else {
              console.log(data);
            }
          });
        });
      });
    });
  }

Upvotes: 0

Views: 596

Answers (2)

Ozan
Ozan

Reputation: 1762

The mistake I made was the fact that I hadn't realised the return values of 'file' which are just the names of the files as strings but not paths. Assinging let filePath =${pathName}/${file}; and reading it onwards solved the problem.

Upvotes: 0

Andras
Andras

Reputation: 3055

readdir returns filenames "a", "b", "c" etc. You want pathName + '/' + file for "/path/to/file/a"

Upvotes: 1

Related Questions