簡體   English   中英

熱從 FTP 轉移到我的計算機上的本地目錄 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM