Próbuję pobrać plik, używając FtpWebRequest
.Pobieranie plików za pomocą FtpWebRequest
private void DownloadFile(string userName, string password, string ftpSourceFilePath, string localDestinationFilePath)
{
int bytesRead = 0;
byte[] buffer = new byte[1024];
FtpWebRequest request = CreateFtpWebRequest(ftpSourceFilePath, userName, password, true);
request.Method = WebRequestMethods.Ftp.DownloadFile;
Stream reader = request.GetResponse().GetResponseStream();
BinaryWriter writer = new BinaryWriter(File.Open(localDestinationFilePath, FileMode.CreateNew));
while (true)
{
bytesRead = reader.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
writer.Write(buffer, 0, bytesRead);
}
}
wykorzystuje tę metodę CreateFtpWebRequest
ja Utworzono:
private FtpWebRequest CreateFtpWebRequest(string ftpDirectoryPath, string userName, string password, bool keepAlive = false)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(ftpDirectoryPath));
//Set proxy to null. Under current configuration if this option is not set then the proxy that is used will get an html response from the web content gateway (firewall monitoring system)
request.Proxy = null;
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = keepAlive;
request.Credentials = new NetworkCredential(userName, password);
return request;
}
pobiera go. Ale informacje są zawsze uszkodzone. Ktoś wie, co się dzieje?
Co masz na myśli przez "jest zawsze uszkodzony"? Proszę być bardziej konkretnym. – PVitt
Chociaż miałem inny problem, komentarz opisu powyżej linii 'request.Proxy = null' funkcji CreateFtpWebRequest określał problem, który miałem. Dlatego przekaż! – UnTraDe