C# WinSCP.NET程序集在处理过程中可以引发哪些异常类型
我发现WinSCP是将SFTP下载与现有进程集成的一个很好的解决方案。但是,我无法找到.NET包装器可能抛出的错误类型 我喜欢在可以的地方进行粒度错误处理,但不知道DLL会抛出什么类型的错误,我需要使用更广泛的错误捕获。 我正在后台工作线程中运行传输,UI允许用户在应用程序运行时将文件添加到处理队列。下面的代码简化了获取源路径和目标路径的过程C# WinSCP.NET程序集在处理过程中可以引发哪些异常类型,c#,.net,sftp,winscp,winscp-net,C#,.net,Sftp,Winscp,Winscp Net,我发现WinSCP是将SFTP下载与现有进程集成的一个很好的解决方案。但是,我无法找到.NET包装器可能抛出的错误类型 我喜欢在可以的地方进行粒度错误处理,但不知道DLL会抛出什么类型的错误,我需要使用更广泛的错误捕获。 我正在后台工作线程中运行传输,UI允许用户在应用程序运行时将文件添加到处理队列。下面的代码简化了获取源路径和目标路径的过程 lstFTM是保存要移动的文件的列表框。 lstRes用于记录每次尝试获取 private void DoTransfer() { // Set
lstFTM
是保存要移动的文件的列表框。lstRes
用于记录每次尝试获取
private void DoTransfer()
{
// Set up session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "ftp.somesite.com",
UserName = "user",
Password = "pass",
SshHostKeyFingerprint = "ssh-rsa 2048 ABC123xxx and so on",
};
using (Session session = new Session())
{
// Connect
try
{
session.Open(sessionOptions);
// Transfer files
const string remotePath = @"\\NAS\path\*";
foreach (string _s in lstFTM.Items)
{
try
{
session.GetFiles(_s, remotePath).Check();
lstRes.Items.Add(string.Format("{0} downloaded on {1}", _s, DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")));
}
catch (Exception iex)
{
lstRes.Items.Add(string.Format("file transfer failed for {0} - reported error {1}", _s, iex.Message));
}
}
}
catch (Exception ex)
{
lstRes.Items.Add("session did not open (" + ex.Message + ")");
}
}
}
这很好,但显然我更愿意谨慎地处理不同类型的异常(文件IO与未找到的源代码与权限等等)WinSCP.NET程序集的每个方法都记录了它可以抛出的异常 例如
Session.GetFiles
请参见:尽管不幸的是,它并不能真正帮助您区分“文件IO与未找到源代码与权限等等”
这是由于大会的内部执行 多谢各位。我也猜到了。仍然是一个很棒的工具。非常享受它没有内存泄漏的事实。