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

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

Node.js fs-extra move()函数

move()函数将文件或目录从源移动到用户指定的目标。如果要将文件移动到已存在同名文件的文件夹中,如果我们将覆盖选项设置为true ,则该函数将覆盖该文件,否则将抛出文件已存在的错误文件夹。

句法:

fs.move(src,dest,options,callback);

参数:此函数接受四个参数,如上所述和如下所述。

  • src:它是一个字符串,包含要移动的文件的路径(源路径)。
  • dest:它是一个字符串,其中包含文件将被移动的路径(目标路径)。
  • options:它是一个具有属性覆盖的对象,可以是真或假。默认情况下,:假。如果设置为 true,如果目标文件夹中存在同名文件,则该文件将被覆盖。
  • callback:当 move()函数执行时将调用的函数。这将导致错误或成功。它是一个可选参数,我们也可以使用 Promise 代替回调函数。

返回值:它不返回任何东西。

按照以下步骤实现该函数:

  1. 可以使用以下命令安装该模块:

    npm install fs-extra
  2. 安装模块后,您可以使用以下命令检查已安装模块的版本:

    npm ls fs-extra

  3. 创建一个名为 index.js 的文件,并使用以下命令在文件中使用 fs-extra 模块:

    const fs = require('fs-extra');
  4. 创建一个名为destination 的空文件夹和一个名为file.txt 的文件。我们将使用此函数将文件移动到目标文件夹。

  5. 要运行该文件,请在终端中写入以下命令:

    node index.js

项目结构将如下所示:

示例 1:

index.js
// Requiring module
import fs from "fs-extra";
  
// Source file
const src = "file.txt";
  
// Destination path
const dest = "destination/file.txt";
  
// Function call
// Using call back function
fs.move(src, dest, (err) => {
  if (err) return console.log(err);
  console.log(`File successfully moved!!`);
});


index.js
// Requiring module
import fs from "fs-extra";
  
// Source file
const src = "file.txt";
  
// Destination path
const dest = "destination/file.txt";
  
// Function call
// Using promises
// Setting overwrite to true
fs.move(src, dest, { overwrite: true })
  .then(() => console.log("File moved to the destination"+
                          " folder successfully"))
  .catch((e) => console.log(e));


输出:现在检查我们之前创建的目标文件夹。您会发现名称为 file.txt 的文件现在已移动到目标文件夹

示例2:让我们再举一个例子。在目标文件夹中创建一个名为 file.txt 的文件,并在目标文件夹之外创建另一个名为 file.txt 的文件。我们将在这个例子中尝试函数的覆盖属性。文件夹结构现在如下所示:


index.js

// Requiring module
import fs from "fs-extra";
  
// Source file
const src = "file.txt";
  
// Destination path
const dest = "destination/file.txt";
  
// Function call
// Using promises
// Setting overwrite to true
fs.move(src, dest, { overwrite: true })
  .then(() => console.log("File moved to the destination"+
                          " folder successfully"))
  .catch((e) => console.log(e));

输出:您将观察到目标文件夹中的文件现在被文件夹外的文件覆盖。

注意:如果您没有将覆盖属性设置为false ,上述程序将导致以下错误:

所以这就是我们如何在程序中使用move()函数。

参考: https://github.com/jprichardson/node-fs-extra/blob/HEAD/docs/move.md