首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到AS/400的FtpWebRequest

连接到AS/400的FtpWebRequest
EN

Stack Overflow用户
提问于 2009-12-19 05:27:19
回答 4查看 3.4K关注 0票数 1

我需要通过ftp从旧的AS/400服务器下载一些文件。我的代码或多或少如下所示:

代码语言:javascript
复制
FtpWebRequest _request = (FtpWebRequest)WebRequest.Create("ftp://ftpaddress/FOO.CSV");
_request.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
_request.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = (FtpWebResponse)_request.GetResponse();

但是,会抛出一个异常,并显示以下消息:

代码语言:javascript
复制
501 Character (/) not allowed in object name.

我猜AS400使用了与/不同的路径分隔符,但我不知道如何以(1) FtpWebRequest接受和(2) AS400理解的方式表达uri。

还有别的人撞到这个吗?

EN

回答 4

Stack Overflow用户

发布于 2009-12-19 05:44:57

根据this page,fwd斜杠是路径分隔符:

FTP正斜杠是发送到

服务器的路径的分隔符。

微软论坛上的一个similar conversation (2005年)表明这是FtpWebRequest中的一个bug:

目前FtpWebRequest不支持报价,我想不出有什么方法可以覆盖该方法而不公开我们的代码Mariya Atanasova NCLMSFT,版主,2005年11月

尝试更新到最新版本或尝试不同的库;MS论坛线程有几个。

票数 2
EN

Stack Overflow用户

发布于 2009-12-22 01:06:31

我过去经常收到这样的消息,这意味着我忘记了更改名称格式。

当使用AS400进行FTP时,可能有两种名称格式,可以使用FTP命令NAMEFMT进行更改:

0表示库系统文件(library\filename.member)

1表示IFS中的文件,其中CSV文件

默认情况下,它设置为0。

将其更改为1,它应该可以工作。然而,我不确定如何使用FtpWebRequest来更改它。

票数 2
EN

Stack Overflow用户

发布于 2009-12-31 03:18:48

为了让你的工作更简单一点,FTP服务器会根据你的第一条命令来决定你要使用什么NameFormat。如果您以"cd /home“开始,那么FTP服务器会自动将NAMEFMT设置为1。

实际上,您可以在会话期间使用远程FTP命令NAMEFMT手动更改此设置。请注意,您不需要(旧的) iSeries方法。您可以使用NAMEFMT1对iSeries上的每个对象进行寻址。例如,"get /QSYS.LIB/MYLIBRARY.LIB/MYFILE.FILE/MYMEMBER.MBR“将对任何iSeries数据库表执行此操作。即使对于多成员文件也是如此!

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

https://stackoverflow.com/questions/1930787

复制
相关文章

相似问题

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