首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自FTPWebRequest.GetResponse()方法的状态代码

来自FTPWebRequest.GetResponse()方法的状态代码
EN

Stack Overflow用户
提问于 2011-01-17 21:42:10
回答 1查看 9.9K关注 0票数 19

这有点棘手。

我正在将文件异步上传到FTP。上传每个文件后,我会检查该文件的上传操作的状态。这可以使用该请求的FtpWebResponse对象的StatusCode属性来完成。代码片段如下所示。

FileStream fs = File.Open(fileName, FileMode.Open);

while ((iWork = fs.Read(buf, 0, buf.Length)) > 0)
    requestStream.Write(buf, 0, iWork);

requestStream.Close();

FtpWebResponse wrRet = ((FtpWebResponse)state.Request.GetResponse());

根据msdn,大约有37个StatusCode值。我不知道这些状态码值中的哪些值可以确保文件成功上载。我在代码中用来检查是否成功的方法有:

wrRet.StatusCode == FtpStatusCode.CommandOK 
wrRet.StatusCode == FtpStatusCode.ClosingData
wrRet.StatusCode == FtpStatusCode.ClosingControl
wrRet.StatusCode == FtpStatusCode.ConnectionClosed
wrRet.StatusCode == FtpStatusCode.FileActionOK
wrRet.StatusCode == FtpStatusCode.FileStatus

但我不知道剩下的部分。我需要确定这些代码,因为基于上传操作的失败或成功,我还有其他相关的操作要执行。错误的条件可能会影响其余代码。我脑海中浮现的另一个想法是,简单地将上面的代码放到一个try..catch中,而不依赖于这些状态代码。这样,我将不再依赖于状态代码,并假设任何失败都将被定向到catch块。如果这是正确的方式,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2011-01-17 22:27:11

FtpStatusCode.ConnectionClosed426,也就是Connection closed; transfer aborted,所以我认为这实际上是一个失败。2XX范围内的任何东西通常都应该是成功的。对于我构建的FTP客户端,我只记得在上传成功时收到的是226 - FtpStatusCode.ClosingData

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4713785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档