【发布时间】:2014-03-17 06:06:13
【问题描述】:
我正在使用 FtpWebResponse 从 ftp 服务器下载文件。我的代码如下所示:
FtpWebRequest request;
try
{
request = (FtpWebRequest)FtpWebRequest.Create(path);
request.UseBinary = true;
request.Credentials = new NetworkCredential(user, passwd);
request.Method = WebRequestMethods.Ftp.DownloadFile;
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
MemoryStream ms = new MemoryStream();
using (Stream rs = (Stream)response.GetResponseStream())
{
rs.CopyTo(ms);
}
}
}
catch (Exception ex)
{
... error handling code here ...
}
效果很好 - 我能够读取内存流并查看文件。我正在测试,所以我将另一个文件复制到 ftp 服务器,删除旧的,并将新的重命名为相同的名称,然后重新运行我的程序。我仍然看到旧文件——我从 ftp 服务器中删除的那个文件——而不是新文件。所以我删除了新文件——现在 ftp 服务器上没有文件了。我重新运行我的程序,它运行没有错误,并继续向我显示来自 ftp 服务器的原始文件。如果我直接 ftp 到 ftp 服务器,我会验证那里没有文件...
发生了什么事?连接是否被缓存?这些症状已经出现了一个小时左右...
【问题讨论】:
-
试试
request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore); -
解决了 - 谢谢。一定要爱上这个论坛。我不能投票给你的答案...
-
在那里,我将其添加为答案。很高兴它起作用了:)
标签: c# ftp ftpwebrequest