2017-04-04 175 views

回答

3

它用于EXDEV在Linux上:

man rename手册页:

EXDEV oldpath和NEWPATH不在同一个安装的文件系统。 (Linux的允许文件系统被安装在多个点, 但重命名()在不同不起作用挂载点,即使 如果同一个文件系统被安装在两个。)

这个错误也可以用于在有ERROR_NOT_SAME_DEVICE在Windows上,请参阅:

欲了解更多信息,请参阅:

Winerror.h中0x80070011 #define ERROR_NOT_SAME_DEVICE 系统无法将文件移动到不同的磁盘驱动器。

3

这听起来像你试图通过“设备”(分区)边界重命名文件。

/tmp是与/不同的分区。这意味着,你不能做到这一点:

fs.rename('/tmp/myfile.txt', '/myfile.txt', ...) 

如果你想做到这一点,你需要先副本文件(同样适用于fs.renameSync()还有,很明显)

到其新位置,然后删除旧文件。有一些模块,如mv,可以帮助你。