首页 > 解决方案 > fs rename 找不到文件

问题描述

我有以下代码:

http = require("http");
fs = require("fs");

http.createServer(function(req, res) {
  fs.rename("anewfile.txt", "/folder/anewfile.txt", function(err) {
    if (err) {
      console.log(err);
    }
    console.log("Moved file");
  });
}).listen(8000);

我希望它将与我的程序位于同一目录中的文件“anewfile.txt”移动到一个名为“文件夹”的文件夹中,该文件夹也属于同一目录。但是我收到“找不到文件”错误。

标签: node.js

解决方案


用作path.join(__dirname, "anewfile.txt")源名称而不是"anewfile.txt".

问题是您很可能从源代码所在的目录中运行脚本。传递给的文件名fs.rename是相对于当前工作目录解析的process.cwd(),而不是源模块的位置__dirname。仅用require__dirname其基础。


推荐阅读