在Debian Wheezy上,使用fs.rename或fs.renameSync重命名文件无效。
只有将文件从/tmp/移动到其他位置时才会出现此问题。
报告的错误是:EXDEV,不允许跨设备链接。
以下是代码示例:
var fs = require("fs"),
util = require('util');
...
//fs.renameSync(files.upload.path, "/tmp/test.png");
var readStream = fs.createReadStream(files.upload.path)
var writeStream = fs.createWriteStream("/tmp/test.png");
util.pump(readStream, writeStream, function() {
fs.unlinkSync(files.upload.path);
});
Debian Wheezy默认使用tmpfs作为/tmp文件夹。
可以通过修改/etc/default/rcS来关闭此功能。
RAMTMP=yes
必须设置为
RAMTMP=no
for(let i=0; i<readdirFileNames.length; i++){
fs.rename(__dirname+”/sample/strings/“+ readdirFileNames[i],
__dirname+”/sample/strings/“+ readdirFileNames[i].split(“trashToRemove”).join(“”),
()=>{
console.log(“File renamed”)
})
}