📌  相关文章
📜  如何从 js 中的文件夹中删除所有内容 - Javascript (1)

📅  最后修改于: 2023-12-03 15:37:54.412000             🧑  作者: Mango

如何从js中的文件夹中删除所有内容 - Javascript

有时候,我们需要在Javascript中使用文件夹来临时保存或永久保存文件。但是,有时候我们也需要删除这个文件夹中的所有内容。那么,如何从js中的文件夹中删除所有内容呢?下面,我们就来介绍一下如何实现这个功能。

使用File System模块

首先,我们需要使用Node.js中的File System模块来读取和删除文件。File System模块是Node.js自带的模块,不需要另外安装。

const fs = require('fs');
读取文件夹

首先,我们需要使用readdirSync方法读取文件夹中的文件和子文件夹。该方法返回一个字符串数组,其中包含文件夹中的所有文件和子文件夹。

const files = fs.readdirSync(folderPath);

其中,folderPath为你要读取的文件夹的路径。

删除文件夹中的文件和子文件夹

接下来,我们要使用unlinkSync方法来删除文件夹中的文件和rmdirSync方法来删除子文件夹。这两个方法分别用于删除文件和空文件夹。

files.forEach((file, index) => {
    const filePath = `${folderPath}/${file}`;
    const stats = fs.statSync(filePath);

    if (stats.isDirectory()) {
        // 删除子文件夹
        fs.rmdirSync(filePath);
    } else {
        // 删除文件
        fs.unlinkSync(filePath);
    }
});

其中,stats.isDirectory()方法用于判断当前文件或文件夹是否为一个文件夹。

删除完整的文件夹

在删除完文件和子文件夹后,我们需要使用rmdirSync方法来删除完整的文件夹。这个方法只能用于删除空文件夹,如果文件夹中还有文件或子文件夹,那么该方法会报错。

fs.rmdirSync(folderPath);

接下来,我们将以上代码整合到一起:

const fs = require('fs');

function deleteFolder(folderPath) {
    const files = fs.readdirSync(folderPath);

    files.forEach((file, index) => {
        const filePath = `${folderPath}/${file}`;
        const stats = fs.statSync(filePath);

        if (stats.isDirectory()) {
            // 删除子文件夹
            deleteFolder(filePath);
        } else {
            // 删除文件
            fs.unlinkSync(filePath);
        }
    });

    fs.rmdirSync(folderPath);
}

// 使用方法
deleteFolder('/path/to/folder');
总结

通过以上方法,我们可以实现从js中的文件夹中删除所有内容的功能。值得注意的是,该方法只能删除空文件夹,如果文件夹中还有文件或子文件夹将无法删除。如果你需要删除非空文件夹,可以使用第三方模块如rimraf。