fs.readdir 未读取作为参数传递的路径

fs.readdir Not Reading The Path Passed As The Argument

我正在尝试使用 fs 读取目录中的所有文件。当我调用 fs.readdir 函数时,出现错误

ENOENT: no such file or directory, scandir 'C:\dev\main\file:\C:\dev\main\public'

当我控制台记录传递给它打印的函数的值时

file:///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 函数没有从我传递给它的目录中读取?

readdir 需要 URL 实例形式的数据或 string.

形式的数据

您在此处传递了 string,因此您正在为 readdir 定义路径。因为您的 string 实际上不是路径,所以您应该

  • 直接使用readDir(因为它似乎是基于您的代码的路径)
  • 或使用 new url.URL(url.pathToFileURL(readDir))