![](/img/trans.png)
[英]How to transfer multiple files from FTP server to local directory using C#?
[英]hot to transfer from FTP to local directory on my computer in C#
我的計算機(Windows-7)中有 FTP 服務器,名為 MyFTP
我有這個代碼可以從本地目錄傳輸到 FTP 服務器
這段代碼工作得很好
string MyFile = @"d:\Test.txt";
//string url = "ftpUrl/FileName";
string url = "ftp://127.0.0.1/Test.txt";
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(url);
request.Method = WebRequestMethods.Ftp.UploadFile;
//request.Credentials = new NetworkCredential("user name", "password");
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
byte[] buffer = File.ReadAllBytes(MyFile);
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(buffer, 0, buffer.Length);
}
現在我需要從 FTP 服務器轉移到我電腦的本地目錄
怎么做?
我建議使用WebClient
, API 更容易一些
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("username", "password");
ftpClient.DownloadFile("ftp://127.0.0.1/destination.txt", "C:\\source.txt");
}
如果您需要使用 FtpWebRequest 這應該可以完成工作
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/Test.txt");
request.Method = WebRequestMethods.Ftp.DownloadFile;
//request.Credentials = new NetworkCredential("user name", "password");
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
byte[] data;
using (var responce = request.GetResponse())
using (var stream = responce.GetResponseStream())
using (var reader = new BinaryReader(stream))
{
data = reader.ReadBytes((int)stream.Length);
}
我知道有更有效和更安全的方法來清空 stream。 但這會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.