Das Herunterladen großer Dateien (~ 150 MB) vom FTP-Server hängt

Ich versuche, Dateien vom FTP-Server mit folgendem Code herunterzuladen:

using (System.IO.FileStream fileStream = System.IO.File.OpenWrite(filePath))
              {

                byte[] buffer = new byte[4096];

                int bytesRead = responseStream.Read(buffer, 0, 4096);
                while (bytesRead > 0)
                {
                  fileStream.Write(buffer, 0, bytesRead);                      
                  bytesRead = responseStream.Read(buffer, 0, 4096);
                }

              }

Die Erstellung von responseStream:

System.IO.Stream responseStream = GetFileAsStream(url, username, password, false);

public static System.IO.Stream GetFileAsStream(string ftpUrl, string username, string password, bool usePassive)
{
  System.Net.FtpWebRequest request = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(ftpUrl);
  request.KeepAlive = false;
  request.ReadWriteTimeout = 120000;
  request.Timeout = -1;
  request.UsePassive = usePassive;

  request.Credentials = new System.Net.NetworkCredential(username, password);

  request.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;

  System.IO.Stream fileResponseStream;


  System.Net.FtpWebResponse fileResponse = (System.Net.FtpWebResponse)request.GetResponse();



  fileResponseStream = fileResponse.GetResponseStream();

  return fileResponseStream;
}

Es funktioniert gut mit kleineren Dateien, aber wenn eine Datei größer ist (z. B. 150 MB), hängt der Prozess. Aus irgendeinem Grund versteht das Programm nicht, dass der Download abgeschlossen ist, und versucht immer noch, mehr Bytes zu lesen.

Ich bevorzuge Antworten ohne externe Bibliotheken. Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage