首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FtpWebRequest/FtpWebResponse上的OPTS命令

FtpWebRequest/FtpWebResponse上的OPTS命令
EN

Stack Overflow用户
提问于 2009-10-09 20:03:01
回答 3查看 2.4K关注 0票数 4

我使用System.Net名称空间中的FtpWebRequest和FtpWebResponse对象发出LIST命令。我遇到的问题是我连接的FTP服务器没有实现OPTS命令。

有没有办法阻止FtpWebRequest发出OPTS命令?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-11 21:48:08

恐怕你不能这么做。根据Reflector的说法,它似乎是硬编码在内部类方法(FtpControlStream.BuildCommandsList)中的,所以你不能重写它。然而,这应该不是问题,即使OPTS命令失败,请求也应该继续(参见Reflector中的FtpControlStream.PipelineInstruction代码)

票数 5
EN

Stack Overflow用户

发布于 2010-01-05 09:03:46

实际上,这是一个问题,因为文件名可能编码不正确……一些ftp服务器不支持OPTS UTF8,但仍然可以在UTF8中传输文件名。(请注意,尽管支持UTF8文件名,但'OPTs UTF8‘不是FTP国际化标准所必需的。)如果没有得到OPTS UTF8的OK响应,.NET Ftp类将使用默认代码页。不幸的是,MS没有提供一些使用UTF8的方法,因为这使得您无法向其他符合utf8的服务器传输国际文件名,也无法从其他服务器传输国际文件名。

票数 3
EN

Stack Overflow用户

发布于 2012-07-30 21:50:54

这不是最优雅的解决方法,但您可以通过以下方式修改FtpWebRequest发送的命令:

  1. 使用异步方法将您自己的WriteCallbackDelegate放入您注入的elegate
  2. 中的底层CommandStream's Commands list中,并将控制权传递回默认回调委托

<WriteCallbackDelegate>G215

我已经written up some draft detail了如何做到这一点,但请随时评论那里/这里或电子邮件给我,如果有人看到这一点,并需要更多细节。

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

https://stackoverflow.com/questions/1545793

复制
相关文章

相似问题

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