为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2021-12-02 19:52:40
我只需要删除目录中的 json 文件(多级)。我猜测 fs-unlinkSync(path) 是可能的但是如果不指定单个文件名,我就找不到解决方案。我希望用以下方法解决它... fs.unlinkSync('./desktop/directory/*.json') 但不幸的是星号不会选择全部。请问有什么建议吗?
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以使用 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 行即可删除文件。


查看完整回答
反对 回复 2021-12-02
  • 1 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信