有没有办法重命名 SFTP 上的文件?
这是我用来下载的,我使用的是scp2
Node 模块:
client.scp({
'host': this.host,
'username': this.username,
'password': this.password,
'path': path
},'./', function(err) {
if (err){
return callback("File: "+path+" "+err);
}else{
return callback(null);
}
});
也许我可以下载该文件,用其他名称上传并从 SFTP 中删除旧文件。但这并不简洁。
我查看了其他模块,例如:https://www.npmjs.com/package/sftpjs它实现了一些重命名功能,但我无法使其工作。有什么建议吗?这是非常明显的用例,但我找不到任何东西。
编辑: 维杰的回答是正确的。我只是做错了。
我的代码:
// Download swush file from SFTP
var Client = require('sftpjs');
var c = Client();
c.on('ready', function () {
c.list(function (err, list) {
if (err) throw err;
console.dir(list);
c.end();
});
}).connect({
'host': this.host,
'username': this.username,
'password': this.password,
}).rename(path.concat(oldName), path.concat(newName), function(err){
if (err){
console.log("Error when renaming file: "+err)
}else{
console.log("Renaming file successful.");
}
});
工作代码:
// Download swush file from SFTP
var Client = require('sftpjs');
var c = Client();
c.on('ready', function () {
c.rename(path.concat(oldName), path.concat(newName), function(err) {//only one parameter err is available for rename method.
if (err){
console.log("Error when renaming file: "+err)
}else{
console.log("Renaming file successful.");
}
});
}).connect({
'host': this.host,
'username': this.username,
'password': this.password,
});
最佳答案
您可以使用以下代码行重命名文件: 您可以使用https://github.com/mscdex/node-ftp成功重命名文件。
var Client = require('ftp');
var c = new Client();
c.on('ready', function() {
c.rename('foo.txt', 'foo-new.txt', function(err) {//only one parameter err is available for rename method.
if (err) throw err;
console.log("rename completed");
});
});
c.connect({
host : host,
user : user,
password : password
});
您也可以使用node-sftpjs模块以同样的方式实现这一点。
关于node.js - 如何使用 NodeJs 重命名 SFTP 上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38659542/