C#WebClient DownloadFileAsyncを使用していくつかの問題が発生しました。DownloadFileAsync:複数のファイル
は、私がWebクライアントDownloadFileAsyncを使用して、同じ時間(http://example.com/abc/1.jpg、http://example.com/abc/efg/2.jpg、など)で多くのファイルをダウンロードしています:
は、ここに私のシナリオです。
私の現在のコード例は次のとおりです。
while (theres still files in http://example.com/abc/) {
// filename will be something like /abc/1.jpg, /abc/efg/2.jpg
if (!file.exists(directory.getcurrentdirectory()+filename.Replace('/', '\\'))) {
WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(downloadProgressChanged);
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(downloadCompleted);
webClient.DownloadFileAsync(new Uri("http://example.com"+filename), Directory.GetCurrentDirectory()+filename.Replace('/', '\\'));
}
ダウンロードされているすべてのファイルを1つのプログレスバーに表示されるように、私はそれを作るにはどうすればよいですか?
例えば、 1.jpgは50kb、2.jpgは50kb、1.jpgのダウンロードが完了するとプログレスバーが50%、2.jpgがプログレスバーの51%から100%になります。
また、ファイル名が/abc/1.jpgの場合、現在のディレクトリにabcという名前のフォルダがない場合、ダウンロードは機能しません。ファイル名に応じてフォルダを自動的に作成するにはどうすればよいですか? (例:/random123/3.jpg、/anotherrandom/4.jpgなど)
2つの無関係なことを求めていますが、2つの質問をする必要があります。 – svick
ダウンロードを開始する前に、すべての画像のサイズを知っていますか?または、プログレスバーは画像のサイズとは独立しているべきですか? – svick
ダウンロードを開始する前に、すべてのイメージの合計サイズがわかりません。それは動的でなければなりません。 – initialshl