这是我的代码:
string my_dir = "";
try
{
my_dir = ftp.GetCurrentDirectory() + "/test";
//It sometimes crashes here. I get timeout error.
}
catch
{
ftp.Close();
ftp.Open();
my_dir = ftp.GetCurrentDirectory() + "/test";
}
ftp是FtpConnection类的实例:http://ftplib.codeplex.com/discussions?searchText=&size=10&page=1
此错误发生在非常大的文件上。我将不得不等待大约2个小时才能再次获得它。这就是我在这里问的原因。 catch块中的代码是否有意义?它会解决超时问题吗?
答案 0 :(得分:1)
如果库未公开Timeout属性,则无法执行任何操作。 FtpConnection是一个非常薄的WinINET包装器,所以你唯一的选择是编写一些P / Invoke代码来改变WinINET的超时。
你有没有理由使用这门课? .NET已经有FtpWebRequest/FtpWebResponse个类。您可以使用FtpWebRequest.Timeout属性更改操作的超时,或通过传递Infinite值(-1)
来禁用超时