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))
我正在尝试使用 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))