使用WinSCP的.NET程序集上传文件。 OperationResultBase.Check()抛出以下错误:WinSCP:如何确保SFTP上传从.zip.filepart重命名为.zip?
WinSCP.SessionRemoteException: Transfer was successfully finished, but temporary transfer file 'testfile.zip.filepart' could not be renamed to target file name 'testfile.zip'. If the problem persists, you may want to turn off transfer resume support.
看来,出现这种情况与我尝试发送任何zip文件。如果它有所作为,这些是使用DotNetZip库创建的zip文件。
代码,我用的WinSCP赋予文档中几乎直接从例如采取:
public void uploadFile(string filePath, string remotePath)
{
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = currentSession.PutFiles(filePath, remotePath, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}
2012-06-01
sigil
+1
这似乎很奇怪,我认为上载使用不同的文件名比实际所需的文件名。你有控制权吗? –
+0
@sarnold,来自WinSCP文档:“当使用SFTP协议传输文件时,它首先传输到一个带有.filepart扩展名的临时文件中,只有在传输完成后,扩展才会被删除。 –
+0
如果您有权访问服务器,是否可以从SysInternals运行诸如Process monitor之类的东西来查看文件上传完成后会发生什么。例如,防病毒程序可能会在文件关闭时开始扫描文件,并且在尝试重命名时仍然访问该文件。 –