gpt4 book ai didi

c# - WinSCP:如何确保 SFTP 上传从 .zip.filepart 重命名为 .zip?

转载 作者:太空狗 更新时间:2023-10-29 21:40:46 26 4
gpt4 key购买 nike

使用 WinSCP 的 .NET 程序集上传文件。 OperationResultBase.Check() 抛出以下错误:

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);
}
}

Discussion over at the WinSCP forum表示程序集还不允许对传输恢复支持进行编程控制。有解决办法吗?

最佳答案

听起来好像文件上传到的目标服务器上的文件系统不允许文件更改权限。这可能导致上传完成时文件重命名失败,尽管完整的文件已上传并写入文件系统,并且在传输过程中使用了临时文件名。如果您没有对目标服务器的管理访问权限,则可以通过尝试重命名目标服务器上已有的文件来进行测试。如果这也失败了,那么您将需要更改目标服务器上的适当权限才能使其正常工作。否则,您可能必须使用错误消息中提供的建议来关闭恢复支持,以便最初打开它以使用所需的文件名而不是临时文件名(扩展名为 .filepart)进行写入。

关于c# - WinSCP:如何确保 SFTP 上传从 .zip.filepart 重命名为 .zip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com