我的计算机(Windows-7)中有名为MyFTP的FTP服务器
我有从本地目录转移到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服务器转移到我的电脑中的本地目录
怎么做?
答案 0 :(得分:4)
我建议使用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");
}
答案 1 :(得分:0)
如果您需要使用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);
}
我知道有更有效和安全的方法来清空流。但这会奏效。