使用FtpWebRequest将文件上载到AS400

时间:2012-09-01 11:04:27

标签: c# ftp ibm-midrange ftpwebrequest

我正在尝试使用C#将文件上传到AS400。结构是:

ftp_server_ip_address/library/table

E.g:

10.123.1.23/ABCD/XYZ

FileName:sample.txt

AS400表与我的文件布局具有相同的字段。我可以使用PUT命令使用FTP命令成功上传文件,如下所示。

ftp> open 10.123.1.23
ftp> username
ftp> password
ftp> cd ABCD
ftp> put c:/sample.txt ABCD/XYZ

我收到了成功的消息。

但是当我尝试使用FtpWebRequest时,我收到一条550 :” File unavailable or no access”错误消息。

我不确定如何构造URI。 目前,我的代码看起来像

FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(@"ftp://110.123.1.23/ABCD” + file.Name);

此外,我无法使用Internet Explorer或Windows资源管理器浏览到FTP文件夹。我得到了相同的550错误。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你构建的URL有点不对,你在文件名之前错过了/,应该是这样的;

FtpWebRequest ftpRequest = 
    (FtpWebRequest)WebRequest.Create(@"ftp://110.123.1.23/ABCD/” + file.Name);

您也没有与交互式示例存储在同一目录中;

ftp> cd ABCD
ftp> put c:/sample.txt ABCD/XYZ

将文件XYZ存储在ABCD / ABCD目录中,而不仅仅是URL示例中的ABCD。

第三,如果您使用的是.NET 4.0或更高版本,则可以be bitten by this changed behavior in how directories are sent to the server