0
FTP 서버에서 파일을 다운로드하고 있습니다. 마지막 바이트가되면 고정되고 시간이 초과됩니다. 시간 제한을 -1로 설정해야만 시간이 초과되지 않지만 마지막 바이트는 끝나지 않습니다.C# FTP 파일 다운로드 시간 초과
아이디어가 있으십니까?
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://xxx" + "/" + fileDownload);
request.Credentials = new NetworkCredential("xxx", "xxx");
request.UseBinary = true;
request.KeepAlive = true;
request.Timeout = -1;
request.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
FileStream writer = File.Create(@"c:\temp\" + Path.GetFileNameWithoutExtension(fileDownload) + ".csv");
long length = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[2048];
// readCount = responseStream.Read(buffer, 0, bufferSize);
while (responseStream.CanRead)
{
readCount = responseStream.Read(buffer, 0, bufferSize);
writer.Write(buffer, 0, readCount);
}
responseStream.Close();
response.Close();
writer.Close();
지금 사용해보세요. Filezilla를 사용하여 작업을 완료했으며 약 3000 바이트가 누락되었습니다. 나는 그것이 효과가 있기를 바란다. 감사. –
또한 정말로 버퍼링 할 필요가없는 한. 당신은 간단하게'responseStream.CopyTo (writer);' – tidwall
@jojaba, yes, good advice를 할 수있다. (OP가 .Net> = 4를 사용한다고 가정) –