C#モジュラスカウント

良い一日、

私は30MB以上のファイルをダウンロードしているアプリケーションを書いています。私は現在ダウンロードされているバイト数を記録しています。

私の質問は:

私はいつ1M、2M、3Mなどを過ぎて行くかを決めたい。

私の論理は:

int totalFileSave = 0;
...
...
int bytesRead = responseStream.Read(buffer, 0, 4096);
totalFileSave += bytesRead;

while (bytesRead > 0) {
   //How do I test when I hit 1M, 2M, 3M and so forth...
    bytesRead = responseStream.Read(buffer, 0, 4096);
    totalFileSave += bytesRead;
}
0
@Russell、私が最初に試したとき:totalFileSave = 1049201 then totalFileSave%1000000 = 49201、これは私が望んでいないものです。
追加された 著者 coson,
あなたのタイトルから、これをあなた自身で解決する方法があるようです。あなたは何をしていないのですか?
追加された 著者 Russell,

2 答え

private const int MEGABYTE = 1024 * 1024;

if ((bytesRead % MEGABYTE) == 0)
{
   //Do something...
}
1
追加された
bytesReadはいつまでに4096を超えますか?
追加された 著者 sq33G,

このようなものはどうですか?

private const int megaByte = 1024 * 1024;
private int current = 0;

while (bytesRead > 0) 
{
    bytesRead = responseStream.Read(buffer, 0, 4096);
    totalFileSave += bytesRead;

    int total = bytesRead/megaByte;

    if (total > current)
    {
        current = total;
       //you went up 1 M and are now at or greater than 'current'M
    }
}
0
追加された