javascript - fs.readdir 没有读取作为参数传递的路径
问题描述
我正在尝试使用 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 函数没有从我传递给它的目录中读取?
解决方案
readdir
期望以URL
实例或路径形式的数据为string
.
您在此处传递 a string
,因此您正在为readdir
. 因为您string
实际上不是一条路径,所以您应该
- 直接使用
readDir
(因为它似乎是基于您的代码的路径) - 或使用
new url.URL(url.pathToFileURL(readDir))
推荐阅读
- c++ - 网络 SNMP。使用后如何清理内存?
- php - Laravel Lumen 多对一返回 []
- python - Django重定向到错误的视图
- android - 实现 ValueEventListener 的问题
- oracle - PL/SQL 继承实现,其中过程在子对象下实现
- vue.js - 为什么 keyup 不适用于 vue.js 中的字母表
- java - 通过 POST 调用确保 REST
- python - 使用带有 Gunicorn 的烧瓶访问网络外的 IOT 树莓派
- php - 如何在 GCP 上使用 .htaccess 文件重写 .php?
- amazon-web-services - 在 Laravel 中使用 AWS SQS 和 Lambda 进行队列作业