2014-09-27 79 views
1

有很多方法來編寫這段代碼,但我不明白爲什麼我的版本不工作。 程序應該從命令行獲取2個參數。第一個是帶有文件的文件夾的路徑,第二個arg是文件擴展。輸出應只打印與第二個參數相同的文件。 當我嘗試用2個參數執行此代碼時,我得到一個空輸出。learnyounode FILTERED LS

var fs=require('fs'); 
var path=require('path'); 
var filepath=process.argv[2]; 
var ext="."+process.argv[3]; 
fs.readdir(filepath,function(err,list){ 
if (err) throw err; 
for (var i=0;i<list.length-1;i++){ 
if (("."+path.extname(list[i]))==ext){ 
console.log(list[i]); 

} 
} 
}); 
+0

究竟是不是工作?你在期待什麼,你究竟得到了什麼?請修改您的問題以改進它。 – honk 2014-09-27 08:54:30

回答

0

請刪除 'UTF-8',你只需要類型(以及閱讀文檔http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback):

fs.readdir(filepath,function(err,list){ 
+0

謝謝我修復它。但是,我仍然沒有得到正確的結果。 – 2014-09-27 09:33:18

+0

刪除-1的循環和使用程序就像我的例子 - 'node index.js node_modules/ejs .js'。在我的情況下輸出是'benchmark.js ejs.js ejs.min.js index.js' – magmel 2014-09-27 09:36:11

+0

謝謝。但是,如果我想得到沒有點的第二個參數(擴展)? txt而不是.txt – 2014-09-27 09:51:35