到目前为止,我尝试使用glob-fs
包,如下所示:
let cssFileCount;
glob.readdir('public/css/*.css', function (err, files) {
if (err) return console.error(err);
console.log(files);
cssFileCount = (files.length);
});
这与我的JS文件public/js/*.js
的路径完全一致,但是当我使用public/css/*.css
时,它会返回一个空数组,尽管该目录中包含css文件。当我使用js路径时,它返回一个包含文件列表的数组。然后我使用.length
来检查文件数。
还有其他方法可以使用Globbing检查目录中的文件数吗?
答案 0 :(得分:2)
另一种方法是简单地使用节点的标准文件系统api和基本过滤器:
const fs = require('fs');
const path = require('path')
fs.readdr('public/css', function(err, files) {
if (err) return console.error(err);
const cssFiles = files.filter(file => path.extname(file).toLowerCase() === '.css'));
console.log(cssFiles);
cssFileCount = (cssFiles.length);
});
你不能在这种方法上使用glob,但是从你的问题陈述来看并不是真正需要的,因为你的文件过滤器是非常基本的(即扩展名)。