0

FTP サーバーからファイルをダウンロードしています。最後のバイトに到達すると、フリーズしてタイムアウトします。タイムアウトしないようにタイムアウトを -1 に設定する必要がありましたが、最後のバイトは決して終了しません。

何か案は?

      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();
4

1 に答える 1