WinSCP上传后用c#移动文件
本文关键字:移动 文件 WinSCP | 更新日期: 2023-09-27 18:12:54
我正在创建一个SFTP上传程序。它工作得很好,它连接到远程SFTP服务器并按预期上传文件。我有它的问题,我想要的文件一旦上传移动到本地服务器上的新目录。我已经搜索了WinSCP网站和谷歌搜索,但我写的代码不工作。以下是我的文件:
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
session.MoveFile(transfer.FileName, Local_Processed);
}
在日志中,它表示正在移动文件,但文件仍在原始文件夹中,并且在已处理的文件夹中没有出现任何内容。
Session.MoveFile
用于将远程文件移动到另一个远程目录或重命名远程文件。它不是用于将远程文件移动到本地目录。
将远程文件移动到本地目录,使用Session.GetFiles
的remove
参数。
虽然对我来说,它看起来像你实际上想要移动一个原始的本地文件(上载)到另一个本地目录。所以它实际上和WinSCP没有任何关系。
移动本地文件,使用File.Move
:
File.Move(transfer.FileName, destinationPath);
以下是Martin Prikryl发布后的结果。我最终不得不添加第二个foreach
后,我的第一个用来移动文件。我还发现原来的原始目录调用中的*.*
必须被忽略,因为这也会导致问题。
我最终在我的app.config
文件中创建了第二个变量。它具有与原始目录变量完全相同的路径,只是文件名没有*.*
。
foreach (var file in Directory.GetFiles(OrgPath))
{
File.Move(file, Path.Combine(Processed, Path.GetFileName(file)));
}