c# 如何实现FTP下载并判断下载完成
时间: 2024-10-10 16:15:03 浏览: 32
在C#中,你可以使用System.Net命名空间下的FtpWebRequest和FtpWebResponse类来实现FTP下载。下面是一个基本的例子:
```csharp
using System.IO;
using System.Net;
public bool DownloadFTPFile(string ftpUrl, string username, string password, string localFilePath)
{
try
{
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(ftpUrl);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = true; // 设置为二进制模式
// 添加身份验证信息
request.Credentials = new NetworkCredential(username, password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
// 检查FTP响应是否成功
if (response.StatusCode == FtpStatusCode.OK)
{
using (Stream inputStream = response.GetResponseStream())
using (FileStream outputStream = File.OpenWrite(localFilePath))
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
}
}
response.Close();
return true;
}
else
{
response.Close();
return false;
}
}
catch (Exception ex)
{
Console.WriteLine($"FTP下载失败: {ex.Message}");
return false;
}
}
```
这个函数接收FTP服务器URL、用户名、密码和本地保存路径作为输入,通过FtpWebRequest向服务器发起下载请求,如果服务器响应状态码为FtpStatusCode.OK(表示成功),则逐块读取服务器返回的数据并写入到本地文件。如果过程中有任何异常,函数会捕获并返回false。
阅读全文