Как рассчитать время загрузки в c # (FTP) - PullRequest
1 голос
/ 27 ноября 2011

Я хочу рассчитать время загрузки в моем диспетчере загрузок ftp.

Я использую этот код для загрузки файла через ftp.

        try
        {
            string DirectoryCreate = localPath;
            if (!Directory.Exists(DirectoryCreate))
            {
                Directory.CreateDirectory(DirectoryCreate);
            }
            FtpWebRequest requestFileDownload = (FtpWebRequest)WebRequest.Create("ftp://xxxxxx.com);
            requestFileDownload.Method = WebRequestMethods.Ftp.DownloadFile;

            FtpWebResponse responseFileDownload = (FtpWebResponse)requestFileDownload.GetResponse();
            Stream responseStream = responseFileDownload.GetResponseStream();
            FileStream writeStream = new FileStream(localPath + "\\" + fileName, FileMode.Create);
            int Length = 2048;
            Byte[] buffer = new Byte[Length];
            int bytesRead = responseStream.Read(buffer, 0, Length);
            while (bytesRead > 0)
            {
                writeStream.Write(buffer, 0, bytesRead);
                bytesRead = responseStream.Read(buffer, 0, Length);
            }
            responseStream.Close();
            writeStream.Close();
            requestFileDownload = null;
            responseFileDownload = null;
        }
        catch(WebException ex)
        {

        }

Может кто-нибудь сказать мне, что я должен изменитьв моем коде для расчета времени загрузки.

Буду очень признателен, если кто-нибудь сможет мне помочь.

Ответы [ 2 ]

3 голосов
/ 27 ноября 2011
DateTime t1 =  DateTime.Now;
while (bytesRead > 0)
{
    writeStream.Write(buffer, 0, bytesRead);
    bytesRead = responseStream.Read(buffer, 0, Length);
}
DateTime t2 = DateTime.Now;
TimeSpan diff = t2 - t1;//you can return diff or display it using its properties ..
2 голосов
/ 27 ноября 2011
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
int bytesRead = responseStream.Read(buffer, 0, Length);
            while (bytesRead > 0)
            {
                writeStream.Write(buffer, 0, bytesRead);
                bytesRead = responseStream.Read(buffer, 0, Length);
            }
            responseStream.Close();
            writeStream.Close();
            requestFileDownload = null;
            responseFileDownload = null;

        }
        catch(WebException ex)
        {

        }

stopwatch.Stop();
stopwatch.Elapsed // this will give you the elapsed time
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...