Node.js fs-extra ensureLink()函数
ensureLink()函数确保给定两个文件之间的链接存在。如果目标文件不存在,它将被创建并创建它们之间的链接,但如果源文件不存在,则该函数将引发错误。如果目标文件的目录结构不存在,它将被创建。通过链接,这意味着两个链接文件将是彼此的副本。如果一个文件中的任何内容发生更改,它也会反映在另一个文件中。 createLink()是函数的另一个名称。
句法:
fs.ensureLink(srcPath,destPath,callback)
fs.createLink(srcPath,destPath,callback)
参数:此函数接受三个参数,如上所述和如下所述。
- srcPath:它是一个字符串,包含要与另一个文件链接的文件的路径。该文件需要存在,否则该函数将引发错误。
- destPath:它是一个字符串,其中包含将链接到 srcPath 中指定的文件的另一个文件的路径。
- 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 的文件和一个名为 des 的文件夹,并在该文件夹内创建一个名为 file.txt 的文件。我们将在已经存在的文件上尝试该函数。
index.js
// Requiring module
const fs = require("fs-extra");
// source file path
// File needs to exist
const src = "file.txt";
// destination file path
const dest = "des/file.txt";
// Function Call
// Using callback function
fs.ensureLink(src, dest, (err) => {
if (err) return console.log(err);
console.log("Success! Both files are now linked");
});
index.js
// Requiring module
const fs = require("fs-extra");
// source file path
// File needs to exist
const src = "file.txt";
// destination file path
// File will be created if not exist
const dest = "des/file.txt";
// Function Call
// Using Promises
fs.ensureLink(src, dest)
.then(() => console.log("Success!! Links between files established"))
.catch((e) => console.log(e));
输出:此输出将在控制台中。您将观察到两个文件之间建立了链接,现在如果我们在一个文件中写入任何内容,它将反映在另一个文件中。
示例 2:这次我们将只创建源文件。该函数本身将创建目标文件并在它们之间建立链接。
index.js
// Requiring module
const fs = require("fs-extra");
// source file path
// File needs to exist
const src = "file.txt";
// destination file path
// File will be created if not exist
const dest = "des/file.txt";
// Function Call
// Using Promises
fs.ensureLink(src, dest)
.then(() => console.log("Success!! Links between files established"))
.catch((e) => console.log(e));
输出:此输出将在控制台中。您将观察到首先创建了一个名为 des 的目录,并创建了一个名为 file.txt 的文件,然后在这两个文件中建立了一个链接。
注意:在上述两种情况下,输出将如下所示。在上面的输出中,您可以看到如果一个文件中有任何更改,它将反映在另一个文件中。这就是我们可以使用ensureFile()函数的方式。
参考: https://github.com/jprichardson/node-fs-extra/blob/HEAD/docs/ensureLink.md