如何在不删除Node中的目录的情况下从目录中删除所有文件.js

2022-08-30 02:08:54

如何使用Node.js从目录中删除所有文件而不删除目录本身?
我想删除临时文件。我还不擅长文件系统。

我找到了这种方法,它将删除文件和目录。在这种情况下,类似的东西是行不通的。/path/to/directory/*

我真的不知道应该使用什么命令。感谢您的帮助。


答案 1

要从目录中删除所有文件,首先需要使用 列出目录中的所有文件,然后可以使用 来删除每个文件。还将只给出文件名,您需要与目录名称连接才能获得完整路径。fs.readdirfs.unlinkfs.readdir

下面是一个示例

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

const directory = 'test';

fs.readdir(directory, (err, files) => {
  if (err) throw err;

  for (const file of files) {
    fs.unlink(path.join(directory, file), err => {
      if (err) throw err;
    });
  }
});

答案 2

是的,有一个模块 fs-extra。此模块中有一个完成该工作的方法。下面是一个示例:.emptyDir()

// NON-ES6 EXAMPLE
const fsExtra = require('fs-extra');
fsExtra.emptyDirSync(fileDir);

// ES6 EXAMPLE
import * as fsExtra from "fs-extra";
fsExtra.emptyDirSync(fileDir);

此模块也有一个异步版本。任何人都可以查看该链接。