(5)过滤器
最后更新于:2022-04-01 01:48:15
## 要求
编写一个程序来打印出指定目录下的文件列表,并且以特定的文件名扩展名来过滤这个列表。命令行提供两个参数提,第一个是所给的文件目录路径(如:path/to/dir),第二个参数则是需要过滤出来的文件的扩展名。
举个例子:如果第二个参数是 txt,那么需要过滤出那些扩展名为 .txt的文件。
注意,第二个参数将不会带有开头的”.”。
需要在终端中打印出这个被过滤出来的列表,每一行一个文件。另外,必须使用异步的I/O 操作。
## 提示
fs.readdir() 方法接收两个参数:第一个是一个路径,第二个则是回调函数,这个回调函数会有如下特征:
~~~
function callback (err, list) { /* ... */ }
~~~
这里的 list 是一个数组,它所包含的元素是每个文件的文件名(字符串形式)。
[fs模块API文档](https://nodejs.org/api/fs.html)
node 自带的 path 模块也很有用,特别是它那个 extname 方法。
[path模块API文档](https://nodejs.org/api/path.html)
## 代码
~~~
var fs = require('fs')
var path = require('path')
fs.readdir(process.argv[2], function (err, list) {
list.forEach(function (file) {
if (path.extname(file) === '.' + process.argv[3])
console.log(file)
})
})
~~~