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

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

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");
});


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