【问题标题】:Javascript-Adding all files extentionsJavascript-添加所有文件扩展名
【发布时间】:2018-02-02 13:16:36
【问题描述】:

我希望这里的代码也按文件名搜索,给定的情况当然是显示文件夹和子文件夹中所有以 TXT 结尾的文件。 我很高兴知道它的正确命令:

谢谢

var path = require('path'), fs=require('fs');

function fromDir(startPath,filter){

    if (!fs.existsSync(startPath)){
        console.log("no dir ",startPath);
        return;
    }
    var files=fs.readdirSync(startPath);
    var found = false; 
    for(var i=0;i<files.length;i++){
        var filename=path.join(startPath,files[i]);
        var stat = fs.lstatSync(filename);
        if (stat.isDirectory()){
            fromDir(filename,filter); 
        }
        else if (filename.indexOf(filter)>=0) {
            found = true; 
            console.log('-- your file was found: ',filename);
        };
    };
    if (!found) { 
        console.log("nope,sorry");
    }
};

fromDir('../yoyo','.txt');

【问题讨论】:

  • 如果您需要搜索“文件名”,只需将“.txt”更改为“文件名”即可。
  • 我想知道我是否可以两者兼得?

标签: javascript node.js filenames


【解决方案1】:

我对您的代码进行了一些更改,我认为它现在可以正常工作:

const path = require('path');
const fs = require('fs');

function fromDir(startPath, filename, ext) {
    if (!fs.existsSync(startPath)) {
        console.log('no dir ', startPath);
        return;
    }
    const files = fs.readdirSync(startPath);
    let found = files.find(file => {
        let thisFilename = path.join(startPath, file);
        let stat = fs.lstatSync(thisFilename);
        if (stat.isDirectory()) {
            fromDir(thisFilename, filename, ext);
        } else {
            if (path.extname(thisFilename) === ext && path.basename(thisFilename, ext) === filename) {
                return true;
            }
        }
    })
    if (found) {
        console.log('-- your file was found: ', found);
    }
}

fromDir('./', process.argv[3], process.argv[2]);

更新:代码已更改以遵循需求更改。

【讨论】:

  • 我已经相应地更新了上述建议的解决方案。也就是说,通过键入node find .ext filename,它将找到所有出现的文件名(基本名称).ext。例如node find .txt myfile,它将在当前目录和任何子目录中查找任何名为myfile.txt的文件。
猜你喜欢
  • 2012-12-24
  • 2010-11-09
  • 2019-07-07
  • 2014-11-02
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
相关资源
最近更新 更多