同步和递归文件系统文件查找
Syncchronously and recursive filesystem file finding
我只是有一个简短的问题:
我正在使用 Node.JS 编写一个命令行工具,该工具使用 JSON 模式验证 JSON 文件。所以,现在我有一个问题,当想要获取所有模式时,我总是因为使用异步函数而"未定义",否则只使用同步函数。
对于此命令行工具,不需要异步。
有人可以帮助我并帮助我如何使其正常工作吗?
var getJSONSchemaFiles = function (dir) {
results2 = [];
var recursive = require('recursive-readdir');
recursive(dir, function (err, files) {
// Files is an array of filename
// console.log(files);
files.forEach(function (entry) {
if (entry.indexOf(".schema.json") > -1) {
results2.push(entry);
}
});
console.log(results2);
});
return results2;
};
我正在使用 npm"递归重新添加",但我认为我什至不需要 npm 来做这种事情?
好的,这会同步枚举给定路径下的所有文件:
var fs = require('fs');
function recursiveReaddir(path) {
var stat = fs.lstatSync(path);
if(stat.isFile())
return [path];
if(!stat.isDirectory())
return [];
return [].concat.apply([], fs.readdirSync(path).map(function(fname) {
return recursiveReaddir(path + '/' + fname);
}));
}
使用 glob 模块 https://github.com/isaacs/node-glob。有异步和同步方法,如:glob.sync(pattern, [options]);和 glob(模式, [选项], cb);
他们文档中的示例:
var glob = require("glob")
// options is optional
glob("**/*.js", options, function (er, files) {
// files is an array of filenames.
// If the `nonull` option is set, and nothing
// was found, then files is ["**/*.js"]
// er is an error object or null.
})
相关文章:
- 数字文件命名系统
- 在IntelliJ IDEA中,如何将JS文件从“;查找用法“;使用TypeScript时的结果
- 可在多个相册文件夹中查找的动态图像库
- Node.js服务器问题-已添加“/"在浏览器中查找文件时
- SoundCloud API-基于系统中的ID创建用户配置文件
- 在JSON文件中查找一个元素,并将其显示为HTML
- qoxdoo中的离线存储是否与所有浏览器和本地文件系统兼容
- 内容安全策略指令:;脚本src'self'blob:文件系统:chrome扩展资源:“;获取是否时
- 无法查找元素'手动加载CSS文件时的CSS属性
- 是否有WebKit的实现可以方便地访问本地文件系统
- JavaScript 文件或文件夹查找和导入
- 如何使用 Java 脚本从 csv 文件中查找每列的数据类型
- GridFS 通过_id使用文件名下载来查找文件
- 如何在javascript中获取系统文件分隔符
- 查找已安装的NodeJS模块的文件系统位置
- 如何在电话间隙中打开系统文件资源管理器
- 同步和递归文件系统文件查找
- 使用浏览器访问文件系统文件
- 使用Node.js文件系统,在80个文件中查找一个属性比在一个文件中遍历条件要聪明得多
- 使用Javascript写入系统文件