public static void DownloadItems(string[] itemsToDownload, string destinationPath, Action <string> onFinished)
        {
            var wc = new WebClient();

            foreach (var itemToDownload in itemsToDownload)
            {
                var urlToDownload   = ConstStrings.FullUrlToPacks + itemToDownload;
                var destinationFile = Path.Combine(destinationPath, itemToDownload);
                ZipExtractorUtilies.CreateDirectoryForFile(destinationFile);
                wc.DownloadFile(urlToDownload, destinationFile);
                using (var zipStream = File.Open(destinationFile, FileMode.Open))
                {
                    ZipExtractorUtilies.UnzipFromStream(zipStream, destinationPath);
                }

                File.Delete(destinationFile);
                onFinished(itemToDownload);
            }
        }
示例#2
0
        private void button4_Click(object sender, EventArgs e)
        {
            downloadButton.Enabled = false;
            var _form = this;
            listBox1.Items.Clear();
            var thr = new Thread(() =>
            {
                ZipExtractorUtilies.DownloadItems(ConstStrings.Packs, ".", fName =>
                {
                    _form.UIThread(() =>
                    {
                        listBox1.Items.Add(fName);
                        Thread.Sleep(50);
                    });

                });
                _form.UIThread(() => { downloadButton.Enabled = true; });
            });
            thr.Start();
        }