Hochladen und Herunterladen von FTP-Serverdateien in C#/.NET
Frage 1: Streaming-Datei-Upload
Um zu vermeiden, dass große Dateien vor dem Hochladen in den Speicher geladen werden, verwenden Sie FileStream und Stream.CopyTo, um Dateien direkt zu übertragen. Der geänderte Code lautet wie folgt:
<code class="language-csharp">using (Stream ftpStream = request.GetRequestStream()) using (Stream fileStream = File.OpenRead(@"/local/path/to/file.zip")) { fileStream.CopyTo(ftpStream); }</code>
Problem 2: Die ZIP-Datei ist nach dem Herunterladen ungültig
Bestätigen Sie, ob der FTP-Server den Pasv-Modus (Passivmodus-Datenübertragung) unterstützt, indem Sie request.UsePassive = true aktivieren. Legen Sie außerdem request.UseBinary = true fest, um Dateien im Binärmodus zu übertragen. Der geänderte Code lautet wie folgt:
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip"); request.Credentials = new NetworkCredential("username", "password"); request.Method = WebRequestMethods.Ftp.DownloadFile; request.UsePassive = true; request.UseBinary = true; using (Stream ftpStream = request.GetResponse().GetResponseStream()) using (Stream fileStream = File.Create(@"/local/path/to/file.zip")) { ftpStream.CopyTo(fileStream); }</code>
Mit den oben genannten Änderungen können Sie Dateien erfolgreich auf den FTP-Server hoch- und herunterladen und so die Integrität der ZIP-Datei nach dem Herunterladen sicherstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# effizient Dateien auf/von einem FTP-Server hochladen und herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!