📜  Node.js fs-extra ensureFile()函数

📅  最后修改于: 2022-05-13 01:56:20.423000             🧑  作者: Mango

Node.js fs-extra ensureFile()函数

ensureFile()函数确保用户请求的文件存在。如果文件不存在,该函数将创建一个新文件。即使用户正在请求某个目录内的文件,但如果该目录不存在,该函数将在该目录本身中创建目录和文件。如果文件已经存在,则不会被修改。 createFile()ensureFile()函数的另一个名称,这意味着我们可以使用 createFile()函数代替 ensureFile() 并且一切都会照常工作。

句法:

fs.ensureFile(file,callback)

要么

fs.createFile(file,callback)

参数:

  • file:它是一个包含文件路径的字符串。
  • callback:函数完成任务后调用。这将导致错误或成功。 Promise 也可以用来代替回调函数。

返回值:它不返回任何东西。

按照以下步骤实现该函数:

  1. 可以使用以下命令安装该模块:

    npm install fs-extra
  2. 安装模块后,您可以使用以下命令检查已安装模块的版本:

    npm ls fs-extra

  3. 创建一个名为 index.js 的文件,并使用以下命令在文件中使用 fs-extra 模块:

    const fs = require('fs-extra');
  4. 要运行该文件,请在终端中写入以下命令:

    node index.js

项目结构:项目结构将如下所示。

示例 1:创建一个名为 file.txt 的文件。我们将在我们的函数中传递这个文件

index.js
// Requiring module
const fs = require("fs-extra");
  
// file path
// File already exist
// No modification
// will be done in file
const file = "file.txt";
  
// Function call
// Using callback function
fs.createFile(file, (err) => {
  if (err) return console.log(e);
  console.log("Successfully completed");
});


index.js
// Requiring module
const fs = require("fs-extra");
  
// file path
// Path contains a directory
// which does not exist
// It will create both
// directory and file
const file = "dir/file.txt";
  
// Function call
// Using Promises
fs.createFile(file)
  .then(() => console.log("Successfully Completed"))
  .catch((err) => console.log(err));


输出:由于我们之前创建了文件,该函数不会创建新文件,也不会修改文件包含的数据。

Successfully completed

示例 2:这次我们将传递不存在的文件路径。

index.js

// Requiring module
const fs = require("fs-extra");
  
// file path
// Path contains a directory
// which does not exist
// It will create both
// directory and file
const file = "dir/file.txt";
  
// Function call
// Using Promises
fs.createFile(file)
  .then(() => console.log("Successfully Completed"))
  .catch((err) => console.log(err));

输出:您将观察到现在创建了一个名为 dir 的目录,其中包含一个名为 file.txt 的文件。

Successfully Completed

参考: https://github.com/jprichardson/node-fs-extra/blob/HEAD/docs/ensureFile.md