首页 >后端开发 >C++ >如何在 C# 中高效地向 FTP 服务器上传和下载文件?

如何在 C# 中高效地向 FTP 服务器上传和下载文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-11 09:22:40480浏览

How to Efficiently Upload and Download Files to/from an FTP Server in C#?

C#/.NET中FTP服务器文件的上传和下载

问题1:流式文件上传

为避免在上传前将大型文件加载到内存中,请使用FileStream和Stream.CopyTo直接传输文件。修改后的代码如下:

<code class="language-csharp">using (Stream ftpStream = request.GetRequestStream())
using (Stream fileStream = File.OpenRead(@"/local/path/to/file.zip"))
{
    fileStream.CopyTo(ftpStream);
}</code>

问题2:下载后ZIP文件无效

通过启用request.UsePassive = true,确认FTP服务器是否支持pasv模式(被动模式数据传输)。此外,设置request.UseBinary = true以二进制模式传输文件。修改后的代码如下:

<code class="language-csharp">FtpWebRequest request =
    (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UsePassive = true;
request.UseBinary = true;

using (Stream ftpStream = request.GetResponse().GetResponseStream())
using (Stream fileStream = File.Create(@"/local/path/to/file.zip"))
{
    ftpStream.CopyTo(fileStream);
}</code>

通过以上修改,您可以成功地向FTP服务器上传和下载文件,确保下载后ZIP文件的完整性。

以上是如何在 C# 中高效地向 FTP 服务器上传和下载文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn