我试图使用Node.js获取目录中所有文件的名称列表。我希望输出文件名数组。我该怎么做?
当前回答
提醒一下:如果您计划对目录中的每个文件执行操作,请尝试vinylfs(流式构建系统gulp使用)。
其他回答
IMO完成此类任务最方便的方法是使用glob工具。这是node.js的glob包
npm install glob
然后使用通配符匹配文件名(示例取自软件包的网站)
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.
})
如果您计划使用globby,这里有一个示例来查找当前文件夹下的任何xml文件
var globby = require('globby');
const paths = await globby("**/*.xml");
提醒一下:如果您计划对目录中的每个文件执行操作,请尝试vinylfs(流式构建系统gulp使用)。
它只有2行代码:
fs=require('fs')
fs.readdir("./img/", (err,filename)=>console.log(filename))
图像:
非递归版本
您并没有说要递归地执行,所以我假设您只需要目录的直接子级。
示例代码:
const fs = require('fs');
const path = require('path');
fs.readdirSync('your-directory-path')
.filter((file) => fs.lstatSync(path.join(folder, file)).isFile());
这将起作用,并将结果存储在test.txt文件中,该文件将位于同一目录中
fs.readdirSync(__dirname).forEach(file => {
fs.appendFileSync("test.txt", file+"\n", function(err){
})
})
推荐文章
- js:将一个组件包装成另一个组件
- 父ng-repeat从子ng-repeat的访问索引
- JSHint和jQuery: '$'没有定义
- 模仿JavaScript中的集合?
- 用JavaScript验证电话号码
- 如何在HTML5中改变视频的播放速度?
- 谷歌地图API v3:我可以setZoom后fitBounds?
- 有没有办法修复包锁。json lockfileVersion所以npm使用特定的格式?
- ES6/2015中的null安全属性访问(和条件赋值)
- 与push()相反;
- JS字符串“+”vs concat方法
- AngularJS使用ng-class切换类
- 访问Handlebars.js每次循环范围之外的变量
- 如何用JavaScript截屏一个div ?
- 如何为其他域设置cookie