Beispiel #1
0
        private void WebObj_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                SettingsViewer.Write("version", RemoteVersion);
                progressBar1.Style = ProgressBarStyle.Marquee;

                AppendDescString("распаковка файлов");
                AppendDownloadString("");

                using (var reader = RarArchive.Open("data.rar"))
                {
                    var extractor = reader.ExtractAllEntries();
                    while (extractor.MoveToNextEntry())
                    {
                        string fileName   = Path.GetFileName(extractor.Entry.Key);
                        string rootToFile = Path.GetFullPath(extractor.Entry.Key).Replace(fileName, "");

                        if (!Directory.Exists(rootToFile))
                        {
                            Directory.CreateDirectory(rootToFile);
                        }

                        try
                        {
                            using (var file = File.Create(Path.GetFullPath(extractor.Entry.Key)))
                                extractor.WriteEntryTo(file);
                        }
                        catch (Exception)
                        {
                            continue;
                        }
                    }
                }

                if (File.Exists("data.rar"))
                {
                    File.Delete("data.rar");
                }

                if (File.Exists("settings/config.stg"))
                {
                    File.Decrypt("settings/config.stg");
                }

                AppendDescString("готово к запуску");

                System.Diagnostics.Process.Start("Ignite.exe");
                Environment.Exit(0);
            }
            else
            {
                MessageBox.Show(e.Error.ToString());
            }
        }