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

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


ENOENT: 没有那个文件或目录, 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 函数没有从我传递给它的目录中读取?


哔哔one
浏览 222回答 1
1回答

白猪掌柜的

readdir期望数据以URL实例或路径的形式作为string.您在string此处传递 a ,因此您正在为readdir. 因为你string实际上不是一条路径,你应该要么readDir直接使用(因为它似乎是基于您的代码的路径)或使用 new url.URL(url.pathToFileURL(readDir))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript