当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fs-extra ensureLink()用法及代码示例


ensureLink()函数确保给定的两个文件之间存在链接。如果目标文件不存在,将创建该文件并创建它们之间的链接,但如果源文件不存在,则该函数将引发错误。如果目标文件的目录结构不存在,则会创建该目录。链接是指两个链接的文件都是彼此的副本。如果在一个文件中进行了任何更改,它也会在另一个文件中得到反映。 createLink()是该函数的其他名称。

用法:

fs.ensureLink(srcPath,destPath,callback)
fs.createLink(srcPath,destPath,callback)

参数:该函数接受上面提到和下面描述的三个参数。

  • srcPath:它是一个字符串,其中包含要与另一个文件链接的文件的路径。该文件必须存在,否则该函数将引发错误。
  • destPath:它是一个字符串,其中包含另一个文件的路径,该文件将链接到srcPath中指定的文件。
  • 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的文件和一个名为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


相关用法


注:本文由纯净天空筛选整理自pritishnagpal大神的英文原创作品 Node.js fs-extra ensureLink() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。