.net 如何使用C#中的FTPClient对象向大型机上的FTP服务器运行STOR cmd

ufj5ltwl  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(164)

我尝试在大型机上运行JCL代码文件到JES(C#代码)。我首先执行SITE命令,告诉它文件类型是JES,然后尝试在带有JCL代码的.txt文件上运行STOR命令。SITE命令运行良好,返回成功代码200,但STOR命令失败,并抛出超时异常。

  1. using (FtpClient ftp = new FtpClient())
  2. {
  3. ftp.Host = host;
  4. ftp.InternetProtocolVersions = FtpIpVersion.IPv4;
  5. ftp.Credentials = new NetworkCredential("login","pass");
  6. ftp.DataConnectionType = FtpDataConnectionType.PASV;
  7. ftp.EncryptionMode = FtpEncryptionMode.None;
  8. ftp.Port = 21;
  9. ftp.Connect();
  10. bool isConnected = ftp.IsConnected;
  11. FtpReply site = ftp.Execute("SITE FILETYPE=JES");
  12. FtpReply stor = ftp.Execute("STOR " + file);
  13. ftp.Disconnect();
  14. ftp.Dispose();
  15. bool isDisposed = ftp.IsDisposed;
  16. }

字符串

a8jjtwal

a8jjtwal1#

您不能像这样执行FTP STOR命令。
您使用的FtpClient类肯定有一个用于上传文件的专用方法。如果是System.Net.FtpClient,则代码如下所示:

  1. using (Stream ftpStream = ftp.OpenWrite("/remote/path/file.txt"))
  2. using (Stream fileStream = File.OpenRead(@"C:\local\path\file.txt"))
  3. {
  4. fileStream.CopyTo(ftpStream);
  5. }

字符串

相关问题