我正在尝试使用node列出特定文件夹中的所有文件。 下面是我的代码:
const fs = require('fs');
const dir = 'E:\\';
fs.readdir(dir,(err, files)=>{
console.log(files);
for (let ite in files) {
var file_path = files[ite].toString();
fs.appendFile('filelist.csv', file_path + ',' + fs.statSync(dir.concat(file_path).size) + "\n", (err)=>{
if (err) {
fs.writeFileSync('error.txt', err);
console.log('The process is failed!!!');
}
})
}
})
但是我收到如下错误:
fs.js:948
binding.stat(pathModule._makeLong(path));
^
TypeError: path must be a string or Buffer
at Object.fs.statSync (fs.js:948:11)
at fs.readdir (D:\check_duplicate\check_duplicate.js:8:60)
at FSReqWrap.oncomplete (fs.js:135:15)
如何解决此问题?
答案 0 :(得分:0)
问题在于,这里(您将访问未定义的字符串的size属性)
fs.statSync(dir.concat(file_path).size)
这将得出
fs.statSync(undefined)
我认为您打算执行以下操作:
fs.statSync(dir.concat(file_path)).size