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

list all the files with the same extension as specified by the user

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

我们必须使用 readdir 函数。

喜欢运行这个:

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

我试过这段代码,但出于某种原因,它不会 return 任何东西。

你能帮帮我吗

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);
  });
}); 

像这样调用命令:

node fileJS.js   /Users/admin/Desktop  docx

...您要查找的扩展前面没有点。你的代码可以运行了,我刚刚测试了它。

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

只需像这样调用您当前的脚本:

node fileJS.js   /Users/admin/Desktop  docx

或者更新您的过滤器函数以假设 extFilter 提供了一个起始点。