HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 題名: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: ralris
- 日時: 2009/11/24 19:55:20
- ID: 25906
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: Hongliang
- 日時: 2009/11/24 21:40:45
- ID: 25907
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: ralris
- 日時: 2009/11/24 23:48:37
- ID: 25908
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: Hongliang
- 日時: 2009/11/25 0:49:02
- ID: 25909
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: ヴァン
- 日時: 2009/11/25 10:02:09
- ID: 25911
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: HttpWebRequestとHttpWebResponseを使った方法でプログレスバーの表示(コンソール)
- 著者: ralris
- 日時: 2009/11/25 12:52:04
- ID: 25914
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
http://dobon.net/vb/dotnet/internet/webrequestpost.html#multipart
のHttpWebRequestとHttpWebResponseを使った方法で、
送信するファイルが比較的大きめなので(40MB程度)プログレスバーを表示させようかと考えています。
ただし、コンソールアプリケーションのため
|====================| のような形で5%刻みに=を増やすようなことを思いつきました。
できれば|====================| 50% 500KB/s
などとパーセント表示とアップロード速度も計りたいのですが、どのようにやればいいのでしょうか。
アップロード速度はありませんが、
サンプルコードのwhile文付近に
System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\picture.jpg");
double filebyte = fi.Length;
double loop = 1 / filebyte;
double percent;
Console.Write("|");
while(true)
{
percent = loop * i;
if (Math.Floor(loop % 5) == 0)
Console.Write("=");
Console.WriteLine(Math.Floor(percent).ToString("P"));
readSize = fs.Read(readData, 0, readData.Length);
if (readSize == 0)
break;
reqStream.Write(readData, 0, readSize);
i++;
}
Console.WriteLine("|");
fs.Close();
reqStream.Write(endData, 0, endData.Length);
reqStream.Close();
というものを書いてみました。
このソースコードだとloopが溢れてしまい、溢れていない場合でも常に0.00%と異常です。どのように直せばよいですか?
しかも、これだと
|=5%=10%=15%・・・=100%|
となってしまいます。
最初に|(半角スペースx20)| 0% と先に表示しておいて、
|=(半角スペースx19)| 5% と新しく表示せずに書き換える方法はないですか?
|==(半角スペースx18)| 10% 500KB/s