繁体   English   中英

快速从FTP服务器下载多个文件

[英]Download Multiple Files From FTP Server Quickly

我想使用C#从FTP服务器下载许多(数千个)较小的文件。 使用我当前的代码,我无法达到超过100 KB / s的速度(通常要慢得多)(我正在本地FileZilla FTP服务器上进行测试)。

这是我的代码:

foreach (var file in files)
{
    //Client is basically a WebClient
    var stream = Client.OpenRead(new Uri(_serverRootPath + file.Replace(@"\", "/")));

    var filePath = _clientRootPath + file;
    if (!Directory.Exists(Path.GetDirectoryName(filePath)))
        Directory.CreateDirectory(Path.GetDirectoryName(filePath));
    var fileStream = new FileStream(_clientRootPath + file, FileMode.Create);

    const int bufferSize = 8192;
    var buffer = new byte[bufferSize];
    var readCount = stream.Read(new byte[bufferSize], 0, bufferSize);

    while (readCount > 0)
    {
    await fileStream.WriteAsync(buffer, 0, readCount);
    readCount = await stream.ReadAsync(buffer, 0, bufferSize);
    }

    stream.Close();
}

任何帮助,将不胜感激。

您是否尝试过并行运行? 如果您的连接速度成为瓶颈,那将无济于事,否则值得一试。 有关示例,请访问http://msdn.microsoft.com/zh-cn/library/dd460720(v=vs.110).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM