fs.readdir не читает путь, принятый в качестве аргумента - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь прочитать все файлы в каталоге, используя fs. Когда я вызываю функцию fs.readdir, я получаю сообщение об ошибке

ENOENT: такого файла или каталога нет, scandir 'C: \ dev \ main \ file: \ C: \ dev \ main \ public'

Когда я сохраняю в журнале значение, которое я передаю функции, она печатает

файл: /// C: / dev / main / public

Это код.

const url = require('url');
const fs = require('fs');

export let readDir = './';
let files = [];

if (readDir !== './') {
    console.log(url.pathToFileURL(readDir).href);
    fs.readdir(url.pathToFileURL(readDir).href, (err, dir) => {
        if (err){
            throw err;

        }
    })
}

Почему функция readdir не читает из каталога, который я ей передал?

1 Ответ

0 голосов
/ 25 октября 2019

readdir ожидает данные в виде URL экземпляра или пути как string.

Вы передаете здесь string, поэтому вы определяете путьза readdir. Поскольку ваш string на самом деле не является путем, вы должны либо

  • использовать readDir напрямую (как кажется, путь, основанный на вашем коде)
  • или использоватьnew url.URL(url.pathToFileURL(readDir))
...