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");
});
输出:此输出将在控制台中。您将观察到两个文件之间都建立了链接,现在,如果我们在一个文件中写入任何内容,它将反映在另一个文件中。
范例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
相关用法
- Node.js GM solarize()用法及代码示例
- Node.js MySQL Max()用法及代码示例
- Node.js process.nextTick()用法及代码示例
- PHP imagecreatetruecolor()用法及代码示例
注:本文由纯净天空筛选整理自pritishnagpal大神的英文原创作品 Node.js fs-extra ensureLink() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。