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
Freigeben: 2025-01-11 07:31:45
Original
609 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage