(5)過(guò)濾器

2018-02-24 16:05 更新

要求

編寫(xiě)一個(gè)程序來(lái)打印出指定目錄下的文件列表,并且以特定的文件名擴(kuò)展名來(lái)過(guò)濾這個(gè)列表。命令行提供兩個(gè)參數(shù)提,第一個(gè)是所給的文件目錄路徑(如:path/to/dir),第二個(gè)參數(shù)則是需要過(guò)濾出來(lái)的文件的擴(kuò)展名。

舉個(gè)例子:如果第二個(gè)參數(shù)是 txt,那么需要過(guò)濾出那些擴(kuò)展名為 .txt的文件。

注意,第二個(gè)參數(shù)將不會(huì)帶有開(kāi)頭的”.”。

需要在終端中打印出這個(gè)被過(guò)濾出來(lái)的列表,每一行一個(gè)文件。另外,必須使用異步的I/O 操作。

提示

fs.readdir() 方法接收兩個(gè)參數(shù):第一個(gè)是一個(gè)路徑,第二個(gè)則是回調(diào)函數(shù),這個(gè)回調(diào)函數(shù)會(huì)有如下特征:

function callback (err, list) { /* ... */ }

這里的 list 是一個(gè)數(shù)組,它所包含的元素是每個(gè)文件的文件名(字符串形式)。

fs模塊API文檔

node 自帶的 path 模塊也很有用,特別是它那個(gè) extname 方法。

path模塊API文檔

代碼

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)
  })
})
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)