📜  fs 移动文件 (1)

📅  最后修改于: 2023-12-03 15:00:51.359000             🧑  作者: Mango

用 fs 模块移动文件

在 Node.js 中,可以使用 fs 模块来处理文件和目录。在这篇文章中,我们将讨论如何使用 fs 模块移动文件。

移动文件

要移动文件,我们需要使用 fs 模块中的 rename 函数。rename 函数将一个文件从一个路径移动到另一个路径,并返回一个 Promise 对象。

下面是一个基本的移动文件的示例:

const fs = require('fs');

fs.rename('/path/to/file', '/new/path/to/file')
  .then(() => {
    console.log('File moved successfully');
  })
  .catch((err) => {
    console.error('Error moving file:', err);
  });

在这个示例中,我们将文件从 /path/to/file 移动到 /new/path/to/file。如果移动成功,then 方法将被调用并输出 "File moved successfully"。如果发生错误,catch 方法将被调用并输出错误信息。

报错解决

在移动文件时,需要注意以下几点:

  • 目标路径必须是不存在的,否则会抛出 EEXIST 错误。
  • 如果目标路径的父目录不存在,也会抛出 ENOENT 错误。
  • 如果源文件和目标文件在不同的驱动器上,将抛出 EXDEV 错误,因为不能在不同的驱动器之间重命名文件。

如果你遇到以上报错,可以根据报错提示修改对应路径或保证文件名唯一性。

复制文件

如果你想在移动文件之前先复制文件,可以使用 fs-extra 模块中的 copy 函数。fs-extra 模块是 fs 模块的扩展,提供了更多的文件和目录操作功能。

const fs = require('fs-extra');

fs.copy('/path/to/file', '/new/path/to/file')
  .then(() => {
    console.log('File copied successfully');
  })
  .catch((err) => {
    console.error('Error copying file:', err);
  });

在这个示例中,我们将文件从 /path/to/file 复制到 /new/path/to/file。如果复制成功,then 方法将被调用并输出 "File copied successfully"。如果发生错误,catch 方法将被调用并输出错误信息。

结论

使用 fs 模块和 fs-extra 模块,可以轻松地处理文件和目录,包括移动和复制文件。当你需要进行这些操作时,记得遵守文件系统的规则,并注意处理可能会出现的错误。