当前位置: 首页 > 知识库问答 >
问题:

C#FTP下载文件速度慢

诸葛亮
2023-03-14

我有一个关于C#的ftp库的问题。我需要从ftp服务器下载9000个txt文件。火车站ToUpper()是文件名,因此对于每个文件,我都需要一个新的ftp连接。对于一个文件,大约需要一秒钟。txt文件包含两行。因此,对于所有文件,大约需要一个半小时。是否有更好/更快的解决方案?

            // Get the object used to communicate with the server.
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpAddress + station.ToUpper());
            //request.UsePassive = false;
            request.Method = WebRequestMethods.Ftp.DownloadFile;

            // This example assumes the FTP site uses anonymous logon.
            request.Credentials = new NetworkCredential("anonymous", "janeDoe@contoso.com");

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();

            Stream responseStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(responseStream);

共有2个答案

高祺
2023-03-14

使用MGET命令避免每次重新建立连接。系统。Net客户端不支持MGET,因此您必须使用第三方库或脚本ftp。exe。无论您选择哪个客户端,FTP日志都将如下所示:

USER anonymous
PASS janeDoe@contoso.com
CWD path/to/file
// to get 3 named files
MGET file1.txt file2.txt file3.txt
// or to get all files matching a pattern
MGET *.txt

文件传输将使用相同的控制会话,避免登录和其他网络开销。

可能感兴趣的一个库是FTPLib,它避免拆毁每个命令的通道。但是要小心,因为FTPLib基于wininet,不允许在NT服务中使用。

我还想看看LumiSoft,一个拥有友好许可证的开源项目和DotNetFtpLib,尽管我都没有使用过,也不能谈论它们的稳定性或特性集。在脚本方面,请看一下“使用FTP批处理脚本”。

江宏放
2023-03-14

您在这段代码中没有做错什么,除了您没有在流或响应对象上调用Dispose()这一事实。首先这样做是为了确保您不会以某种方式耗尽客户端或其他地方的资源。

除此之外,您在这里没有太多的选项,这在很大程度上取决于您在服务器端可以做什么。

首先,您可以尝试使用线程一次下载一组文件。您需要试验这会如何影响吞吐量。它可能会线性扩展一段时间,然后下降。如果您打开了太多的连接,可能会激怒服务器的维护人员,也可能会开始拒绝您的连接。要保守。

最理想的情况是,文件将被压缩(. ZIP或. TGZ)在服务器上。如果您对进程没有更多的控制权,这可能不是一个选项。

 类似资料:
  • 我有这个代码来下载一个文件。 这是服务器和密码的一部分。 简单的填充下载,但此行出错 它给了我错误,我希望你能理解我现在面临的问题 java.net.SocketExc0019:软件导致连接中止:套接字写入错误在java.net.SocketOutputStream.socketWrite0(本地方法)在java.net.SocketOutputStream.socket写入(SocketOutp

  • 本文向大家介绍php限制文件下载速度的代码,包括了php限制文件下载速度的代码的使用技巧和注意事项,需要的朋友参考一下 有时候你会出于某种目的而要求把下载文件的速度放慢一些,例如你想实现文件下载进度条功能。限制下载速度最大的好处是节省带宽,避免瞬时流量过大而造成网络堵塞。本文将和你分享如何通过php代码来实现限制文件的下载速度。 首先来看看利用php限制文件下载速度的代码: 下面对以上代码做一些分

  • 本文向大家介绍php控制文件下载速度的方法,包括了php控制文件下载速度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php控制文件下载速度的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我尝试使用C#将文件上传到FTP服务器。文件已上传,但字节为零。

  • 本文向大家介绍python2.7实现FTP文件下载功能,包括了python2.7实现FTP文件下载功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现FTP文件下载功能的具体代码,供大家参考,具体内容如下 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我正试图下载一些公共数据文件。我通过screensrap获取指向文件的链接,这些文件看起来都是这样的: 我在Requests library网站上找不到任何文档。