热从FTP传输到本地目录在我的计算机上的C#

热从FTP传输到本地目录在我的计算机上的C#,c#,ftp,C#,Ftp,我的计算机(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)

我的计算机(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服务器传输到我计算机中的本地目录


如何做到这一点?

我建议使用
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");
}

我建议使用
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);
}

我知道有更有效、更安全的方法来清空数据流。但这是可行的

如果您需要使用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);
}
我知道有更有效、更安全的方法来清空数据流。但这是可行的

哈,我没有读“现在我需要从ftp服务器传输”部分。修正了,我没有读“现在我需要从ftp服务器传输”部分。固定的