首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用node.js获取具有特定文件扩展名的文件列表?

如何使用node.js获取具有特定文件扩展名的文件列表?
EN

Stack Overflow用户
提问于 2017-05-26 19:00:40
回答 5查看 42.9K关注 0票数 30

节点fs包有以下列出目录的方法:

fs.readdir(path,callback)异步读目录(3)。读取目录的内容。该回调获取两个参数(err,files),其中files是目录中除‘’以外的文件的名称数组。和“..”。

fs.readdirSync(path)同步读取目录(3)。返回不包括'.‘的文件名数组。和'..

但是,如何获取与文件规范匹配的文件列表,例如*.txt

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-05-26 19:09:22

你可以用extension extractor函数过滤他们的文件数组。如果您不想编写自己的字符串操作逻辑或正则表达式,path模块就提供了一个这样的函数。

代码语言:javascript
复制
const path = require('path');

const EXTENSION = '.txt';

const targetFiles = files.filter(file => {
    return path.extname(file).toLowerCase() === EXTENSION;
});

根据@arboreal84的建议进行编辑,您可能希望考虑像myfile.TXT这样的情况,这并不是很常见。我刚刚自己测试了一下,path.extname不会为你做小写。

票数 44
EN

Stack Overflow用户

发布于 2017-05-26 19:03:03

基本上,您可以这样做:

代码语言:javascript
复制
const path = require('path')
const fs = require('fs')

const dirpath = path.join(__dirname, '/path')

fs.readdir(dirpath, function(err, files) {
  const txtFiles = files.filter(el => path.extname(el) === '.txt')
  // do something with your files, by the way they are just filenames...
})
票数 21
EN

Stack Overflow用户

发布于 2017-05-26 19:37:50

我使用了以下代码,它工作得很好:

代码语言:javascript
复制
var fs = require('fs');
var path = require('path');
var dirPath = path.resolve(__dirname); // path to your directory goes here
var filesList;
fs.readdir(dirPath, function(err, files){
  filesList = files.filter(function(e){
    return path.extname(e).toLowerCase() === '.txt'
  });
  console.log(filesList);
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44199883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档