我正在尝试在网络中的S:/ test文件夹中列出文件(这不是本地目录)。我想知道如何做到这一点?到目前为止的代码如下:
const testFolder = 's:/test';
const fs = require('fs');
fs.readdir(testFolder, (err, files) => {
files.forEach(file => {
console.log(file);
});
})
我尝试将路径更改为S:test,s:\ test无济于事,错误始终是“无法读取未定义的'forEach'”
最佳答案
如果这是Windows(我认为是Windows),那么您需要做几件事:
使用完整路径(驱动器号可以,但是您也可以在Windows中使用UNC路径)到所需目录。
使用额外的反斜杠转义字符串定义中的所有反斜杠。
始终在fs.readdir()
回调上使用错误处理,因此,如果有错误,则可以准确地看到错误是什么。
工作代码:
const fs = require('fs');
const testFolder = 's:\\test';
fs.readdir(testFolder, (err, files) => {
if (err) return console.log(err);
files.forEach(file => {
console.log(file);
});
});
我只是在自己的硬盘上尝试过此代码,所以效果很好。
而且,仅供参考,我现在几乎总是在现代的node.js中使用ES6
for/of
而不是.forEach()
,因为它对解释器的效率更高,并且可以为您提供更多的循环控制(例如,您可以使用break
退出循环)。const testFolder = 's:\\test';
const fs = require('fs');
fs.readdir(testFolder, (err, files) => {
if (err) return console.log(err);
for (let file of files) {
console.log(file);
}
});
关于javascript - 在nodejs中访问网络驱动器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42214029/