当前位置: 首页 > 编程语言 > C#

使用带有临时文件名共享的WinSCP.NET-COM上传文件

时间:2023-04-10 19:21:10 C#

使用带有临时文件名的WinSCP.NET/COM上传文件.我正在为WinSCP使用.NETDLL,我一直在努力寻找解决问题的好方法。我将放置所有文件的FTP文件夹将由另一个应用程序监控。然后该应用程序将获取这些文件并自动处理它们。所以我想避免的是我的文件在传输完成之前被应用程序抓取。所以我想使用或可能使用临时文件名的临时文件夹,然后在上传完成后移动文件。你认为最好的方法是什么?第二个问题是在WinSCP.NET中应该有一个TransferResume选项,它使用临时名称传输文件并在完成后重命名它。但是我似乎无法让它工作并且正在寻找有关如何让它工作的任何提示?你是对的,WinSCP的“转移到临时文件名”功能看起来是个不错的选择。它使WinSCP上传文件在其名称后附加.filepart,完成后删除扩展名。TransferOptionstransferOptions=newTransferOptions();transferOptions.ResumeSupport.State=TransferResumeSupportState.On;session.PutFiles(@"d:touploadmyfile.dat","/home/user/",false,transferOptions).Check();而它仅受SFTP协议支持。使用FTP协议,您必须手动执行此操作。session.PutFiles(@"d:touploadmyfile.dat","/home/user/myfile.dat.filepart").Check();session.MoveFile("/home/user/myfile.dat.filepart","/home/user/myfile.dat");如果要上传多个文件,可以使用操作掩码并遍历TransferOperationResultSession.PutFiles返回的成功上传文件列表,为每个文件调用Session.MoveFile。TransferOperationResult传输结果;transferResult=session.PutFiles(@"d:toupload*.dat","/home/user/*.filepart")//抛出任何错误transferResult.Check();//重命名上传的文件foreach(TransferEventArgstransferintransferResult.Transfers){stringfinalName=transfer.Destination.Replace(".filepart",".dat");session.MoveFile(transfer.Destination,finalName);}Lockfilewhileuploading/uploadingtotemporaryfilename文章中还有一个完整的PowerShell示例。另请参阅SFTP文件锁定机制(也适用于FTP)以了解隐藏正在上传的文件的不同方法。以上就是C#学习教程:使用WinSCP.NET/COM临时文件名上传文件分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: