【问题标题】:How to use wild card inside of fs.existsSync or statSync or readFileSync如何在 fs.existsSync 或 statSync 或 readFileSync 中使用通配符
【发布时间】:2019-06-29 20:19:48
【问题描述】:

我在下面的规范单击下载按钮,然后验证下载。 程序中唯一的问题是您需要提前知道文件的名称。

我希望它在 *.mp4 这样的目录中查找通配符 我已经阅读了glob,但不知道如何实现它。

有人可以告诉我如何将它或其他方式集成到下面的代码中吗? -

element(by.css('.download-recording .pgi-button-wrapper')).click();

browser.driver.wait(function() {

    return fs.existsSync('/home/user,/Downloads/Recordings/ProtractorMeeting-2019-01-24T21_56_24.000Z.mp4')}, 8000).then(function() {

        console.log("File Downloaded");
        console.log(fs.statSync('/home/user/Downloads/Recordings/ProtractorMeeting-2019-01-24T21_56_24.000Z.mp4').size);
        console.log(fs.readFileSync('/home/user/Downloads/Recordings/ProtractorMeeting-2019-01-24T21_56_24.000Z.mp4').length);
});

【问题讨论】:

    标签: javascript node.js protractor glob fs


    【解决方案1】:

    您可以使用

    读取整个目录

    fs.readdirSync

    然后只是过滤接收到的结果数组,并生成abs路径:

    let fs = require('fs')
    let folderfiles = fs.readdirSync('./')
    console.log(folderfiles)
    let mp4filePaths = folderfiles
        .filter(file=> file.endsWith('.mp4'))
        .map(file=> path.resolve(__dirname, file))
    console.log(mp4filePaths)
    

    【讨论】:

    • 谢谢@Xotabu4,两个问题,1.我正在使用existsSync bc它等待文件下载,我如何让readdirSync首先等待文件下载? 2.你怎么看根目录? (./) 而不是直接查看 /Recordings?
    • @snikt 你可以试试这样的: browser.wait(function() { let folderfiles = fs.readdirSync("./"); return folderfiles.some(file => file.endsWith( ".mp4")); }, 10000);
    • @snikt 你可以传递任何你想要的文件夹路径,这只是示例
    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多