private async void StartFormatsDownload(object control, RoutedEventArgs e) { var dialog = m_dialog; try { dialog.FormatsDownload.IsEnabled = false; var app_data_folder = m_main.App.GetLocalAppDataFolder(); Directory.CreateDirectory(app_data_folder); using (var client = new WebClientEx()) using (var tmp_file = new GARbro.Shell.TemporaryFile(app_data_folder, Path.GetRandomFileName())) { client.Timeout = RequestTimeout; await client.DownloadFileTaskAsync(m_formats_url, tmp_file.Name); m_main.App.DeserializeScheme(tmp_file.Name); var local_formats_dat = Path.Combine(app_data_folder, App.FormatsDat); if (!GARbro.Shell.File.Rename(tmp_file.Name, local_formats_dat)) { throw new Win32Exception(GARbro.Shell.File.GetLastError()); } } SetFormatsUpdateStatus(dialog, guiStrings.MsgUpdateComplete); } catch (Exception X) { SetFormatsUpdateStatus(dialog, guiStrings.MsgDownloadFailed, X.Message); } finally { dialog.FormatsDownload.Visibility = Visibility.Hidden; } }
void CreateWorker(object sender, DoWorkEventArgs e) { m_pending_error = null; try { using (var tmp_file = new GARbro.Shell.TemporaryFile(Path.GetDirectoryName(m_arc_name), Path.GetRandomFileName())) { m_total = m_file_list.Count() + 1; using (var file = File.Create(tmp_file.Name)) { m_format.Create(file, m_file_list, m_options, CreateEntryCallback); } if (!GARbro.Shell.File.Rename(tmp_file.Name, m_arc_name)) { throw new Win32Exception(GARbro.Shell.File.GetLastError()); } } } catch (Exception X) { m_pending_error = X; } }
void CreateWorker(object sender, DoWorkEventArgs e) { m_pending_error = null; try { using (var tmp_file = new GARbro.Shell.TemporaryFile (Path.GetDirectoryName (m_arc_name), Path.GetRandomFileName ())) { m_total = m_file_list.Count() + 1; using (var file = File.Create (tmp_file.Name)) { m_format.Create (file, m_file_list, m_options, CreateEntryCallback); } if (!GARbro.Shell.File.Rename (tmp_file.Name, m_arc_name)) { throw new Win32Exception (GARbro.Shell.File.GetLastError()); } } } catch (Exception X) { m_pending_error = X; } }