私はC#WebClient DownloadFileAsyncを使用していくつかの問題に遭遇しました、そしてあなたが私を助けてくれることを願っています。
これが私のシナリオです:
WebClient 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など)