列出具有用户指定的相同扩展名的所有文件

问题描述 投票:0回答:2

打印给定目录中的文件列表,按文件扩展名进行筛选。第一个参数将是我们要过滤的目录的路径,第二个参数是我们需要打印的文件的类型,

我们必须使用readdir函数。

喜欢运行这个:

node fileJS.js   /Users/admin/Desktop  .docx

我已经尝试过这段代码,但出于某种原因,它不会返回任何内容。

你能帮我么

var fs = require('fs');  //require node filesystem module
var path = require('path'); //require node path module (a couple of tools for reading path names)

var pathSupplied = process.argv[2];
var extFilter = process.argv[3];

function extension(element) {
  var extName = path.extname(element);
  return extName === '.' + extFilter; 
};

fs.readdir(pathSupplied, function(err, list) {
  list.filter(extension).forEach(function(value) {
    console.log(value);
  });
}); 
javascript node.js node-modules
2个回答
0
投票

问题是当你提供以.开头的扩展参数时,因为在你的过滤函数(extension)中你在比较时添加了另一个点(line:return extName === '.' + extFilter;)。

只需调用您当前的脚本,如下所示:

node fileJS.js   /Users/admin/Desktop  docx

或者更新你的过滤器功能,假设extFilter带有一个起始点。


0
投票

像这样调用命令:

node fileJS.js   /Users/admin/Desktop  docx

...没有您正在寻找的扩展程序前面的点。你的代码然后工作,我只是测试它。

© www.soinside.com 2019 - 2024. All rights reserved.