Esempio n. 1
0
        private async Task Extract(List <FileData> FileDatas)
        {
            System.Windows.Forms.FolderBrowserDialog extractToFolderDialog = new System.Windows.Forms.FolderBrowserDialog();

            if (extractToFolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                CancellationTokenSource tokenSource = new CancellationTokenSource();
                CancellationToken       token       = tokenSource.Token;
                unpacker.Token       = token;
                progressBar          = new Progress();
                progressBar.Closing += (object s, CancelEventArgs c) => {
                    tokenSource.Cancel();
                };
                progressBar.Show();
                var toExtractFileStream = new FileStream(loadedOOF, FileMode.Open, FileAccess.Read);
                try
                {
                    if (FileDatas == null)
                    {
                        await unpacker.UnpackAsync(extractToFolderDialog.SelectedPath);
                    }
                    else
                    {
                        await unpacker.UnpackAsync(extractToFolderDialog.SelectedPath, FileDatas);
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show("An error has occurred! " + exc.Message, "OOF GUI", MessageBoxButton.OK, MessageBoxImage.Stop);
                }
                toExtractFileStream.Close();
                progressBar.Close();
            }
        }