如何删除目录NodeJs中的所有json文件

时间:2019-10-25 06:47:49

标签: javascript node.js file express path

我只需要删除目录(多个级别)中的json文件。我可能会猜测fs-unlinkSync(path)

是可能的

但是,如果不指定单个文件名,我将找不到解决方案。

我希望通过以下解决方案... fs.unlinkSync('./ desktop / directory / *。json') 但不幸的是,星号不会全选。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您可以使用fs.readdirSync列出文件,然后调用fs.unlinkSync进行删除。可以递归调用它来遍历整棵树。

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

function deleteRecursively(dir, pattern) {
    let files = fs.readdirSync(dir).map(file => path.join(dir, file));
    for(let file of files) {
        const stat = fs.statSync(file);
        if (stat.isDirectory()) {
            deleteRecursively(file, pattern);
        } else {
            if (pattern.test(file)) {
                console.log(`Deleting file: ${file}...`);
                // Uncomment the next line once you're happy with the files being logged!
                try { 
                    //fs.unlinkSync(file);
                } catch (err) {
                    console.error(`An error occurred deleting file ${file}: ${err.message}`);
                } 
            }
        }
    }
}

deleteRecursively('./some_dir', /\.json$/);

我实际上已经删除了删除该文件的行,并将其注释掉了。.我建议您运行脚本,并对记录的文件是正确的感到高兴。然后,只需取消注释fs.unlinkSync行即可删除文件。