Node.js fs-extra ensureFile()函数
ensureFile()函数确保用户请求的文件存在。如果文件不存在,该函数将创建一个新文件。即使用户正在请求某个目录内的文件,但如果该目录不存在,该函数将在该目录本身中创建目录和文件。如果文件已经存在,则不会被修改。 createFile()是ensureFile()函数的另一个名称,这意味着我们可以使用 createFile()函数代替 ensureFile() 并且一切都会照常工作。
句法:
fs.ensureFile(file,callback)
要么
fs.createFile(file,callback)
参数:
- file:它是一个包含文件路径的字符串。
- callback:函数完成任务后调用。这将导致错误或成功。 Promise 也可以用来代替回调函数。
返回值:它不返回任何东西。
按照以下步骤实现该函数:
可以使用以下命令安装该模块:
npm install fs-extra
安装模块后,您可以使用以下命令检查已安装模块的版本:
npm ls fs-extra
创建一个名为 index.js 的文件,并使用以下命令在文件中使用 fs-extra 模块:
const fs = require('fs-extra');
要运行该文件,请在终端中写入以下命令:
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