相关疑难解决方法(0)

如何在C#中发送任意FTP命令

我已经实现了使用FtpWebRequestC#中的类上传,下载,删除等功能.这是相当直接的.

我现在需要做的是支持发送任意FTP命令,如

quote SITE LRECL=132 RECFM=FB
or 
quote SYST
Run Code Online (Sandbox Code Playgroud)

以下是我们的示例配置app.config:

<!-- The following commands will be executed before any uploads occur -->
<extraCommands>
     <command>quote SITE LRECL=132 RECFM=FB</command>
</extraCommands>
Run Code Online (Sandbox Code Playgroud)

我还在研究如何使用它FtpWebRequest.我接下来可能会WebClient上课.任何人都可以更快地指出我正确的方向?谢谢!

更新:我得出了同样的结论,因为.NET Framework 3.5 FtpWebRequest不支持除了内容之外的任何内容WebRequestMethods.Ftp.*.我会尝试一些其他帖子推荐的第三方应用.谢谢您的帮助!

c# ftp ftpwebrequest

8
推荐指数
2
解决办法
1万
查看次数

从FTP服务器下载大文件(~150MB)会挂起

我试图使用以下代码从ftp服务器下载文件:

using (System.IO.FileStream fileStream = System.IO.File.OpenWrite(filePath))
              {

                byte[] buffer = new byte[4096];

                int bytesRead = responseStream.Read(buffer, 0, 4096);
                while (bytesRead > 0)
                {
                  fileStream.Write(buffer, 0, bytesRead);                      
                  bytesRead = responseStream.Read(buffer, 0, 4096);
                }

              }
Run Code Online (Sandbox Code Playgroud)

responseStream的创建:

System.IO.Stream responseStream = GetFileAsStream(url, username, password, false);

public static System.IO.Stream GetFileAsStream(string ftpUrl, string username, string password, bool usePassive)
{
  System.Net.FtpWebRequest request = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(ftpUrl);
  request.KeepAlive = false;
  request.ReadWriteTimeout = 120000;
  request.Timeout = -1;
  request.UsePassive = usePassive;

  request.Credentials = new System.Net.NetworkCredential(username, password);

  request.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;

  System.IO.Stream fileResponseStream;


  System.Net.FtpWebResponse …
Run Code Online (Sandbox Code Playgroud)

c# ftp

7
推荐指数
1
解决办法
4886
查看次数

标签 统计

c# ×2

ftp ×2

ftpwebrequest ×1