Heim >Backend-Entwicklung >C++ >Wie kann ich mit C#/.NET Dateien auf einen/von einem FTP-Server hochladen und herunterladen?

Wie kann ich mit C#/.NET Dateien auf einen/von einem FTP-Server hochladen und herunterladen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 07:31:45562Durchsuche

How can I upload and download files to/from an FTP server using C#/.NET?

FTP-Serverdateien mit C#/.NET hochladen und herunterladen

In diesem Artikel wird beschrieben, wie Sie C#/.NET zum effizienten Hoch- und Herunterladen von FTP-Serverdateien verwenden. Wir stellen verschiedene Methoden bereit, einschließlich der Verwendung von WebClient und FtpWebRequest, und zeigen, wie Sie den Upload- und Download-Fortschritt verfolgen.

Datei hochladen

Methode 1: WebClient verwenden (einfache Methode)

So können Sie Ihre Dateien ganz einfach hochladen:

<code class="language-csharp">WebClient client = new WebClient();
client.Credentials = new NetworkCredential("用户名", "密码");
client.UploadFile("ftp://ftp.example.com/远程路径/文件.zip", @"C:\本地路径\文件.zip");</code>

Methode 2: Verwenden Sie FtpWebRequest (Stream-Kopie, genauere Steuerung)

Diese Methode ermöglicht eine genauere Kontrolle über den Upload-Prozess, erreicht durch Stream-Replikation:

<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip");
request.Credentials = new NetworkCredential("用户名", "密码");
request.Method = WebRequestMethods.Ftp.UploadFile;

using (Stream fileStream = File.OpenRead(@"C:\本地路径\文件.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
    fileStream.CopyTo(ftpStream);
}</code>

Methode 3: Verwenden Sie FtpWebRequest (blockierte Kopie, Fortschrittsverfolgung)

Diese Methode kopiert den Dateiinhalt in Blöcken, um den Upload-Fortschritt zu verfolgen:

<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip");
request.Credentials = new NetworkCredential("用户名", "密码");
request.Method = WebRequestMethods.Ftp.UploadFile;

using (Stream fileStream = File.OpenRead(@"C:\本地路径\文件.zip"))
using (Stream ftpStream = request.GetRequestStream())
{
    byte[] buffer = new byte[10240];
    int read;
    while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        ftpStream.Write(buffer, 0, read);
        Console.WriteLine("已上传 {0} 字节", fileStream.Position);
    }
}</code>

Datei-Download

Methode 1: WebClient verwenden (einfache Methode)

Hier ist eine einfache Möglichkeit, Ihre Datei herunterzuladen:

<code class="language-csharp">WebClient client = new WebClient();
client.Credentials = new NetworkCredential("用户名", "密码");
client.DownloadFile("ftp://ftp.example.com/远程路径/文件.zip", @"C:\本地路径\文件.zip");</code>

Methode 2: Verwenden Sie FtpWebRequest (Stream-Kopie, genauere Steuerung)

Diese Methode ermöglicht eine genauere Kontrolle über den Download-Prozess, erreicht durch Stream-Replikation:

<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip");
request.Credentials = new NetworkCredential("用户名", "密码");
request.Method = WebRequestMethods.Ftp.DownloadFile;

using (Stream ftpStream = request.GetResponse().GetResponseStream())
using (Stream fileStream = File.Create(@"C:\本地路径\文件.zip"))
{
    ftpStream.CopyTo(fileStream);
}</code>

Methode 3: Verwenden Sie FtpWebRequest (blockierte Kopie, Fortschrittsverfolgung)

Diese Methode kopiert den Dateiinhalt in Blöcken, um den Download-Fortschritt zu verfolgen:

<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip");
request.Credentials = new NetworkCredential("用户名", "密码");
request.Method = WebRequestMethods.Ftp.DownloadFile;

using (Stream ftpStream = request.GetResponse().GetResponseStream())
using (Stream fileStream = File.Create(@"C:\本地路径\文件.zip"))
{
    byte[] buffer = new byte[10240];
    int read;
    while ((read = ftpStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        fileStream.Write(buffer, 0, read);
        Console.WriteLine("已下载 {0} 字节", fileStream.Position);
    }
}</code>

Denken Sie daran, "用户名", "密码", "ftp://ftp.example.com/远程路径/文件.zip" und @"C:本地路径文件.zip" durch Ihre tatsächlichen FTP-Serverinformationen und den Dateipfad zu ersetzen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit C#/.NET Dateien auf einen/von einem FTP-Server hochladen und herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn