private void btnExport_Click(object sender, RoutedEventArgs e) { // check input first if (string.IsNullOrEmpty(SourceFolder.Text)) { MessageBox.Show("Please select source folder!"); SourceFolder.Focus(); return; } if (Directory.Exists(SourceFolder.Text) == false) { MessageBox.Show("Source folder does not exist!"); SourceFolder.Focus(); return; } if (string.IsNullOrEmpty(TargetFolder.Text)) { MessageBox.Show("Please select target folder!"); TargetFolder.Focus(); return; } string targetFolder = TargetFolder.Text; if (Directory.Exists(targetFolder) == false) { Directory.CreateDirectory(targetFolder); } // find all rvt files including sub directories var files = Directory.EnumerateFiles(SourceFolder.Text, "*.rvt", SearchOption.AllDirectories); int count = files.Count(), success = 0; double curStep = 0, current = 0, tempVal; foreach (var f in files) { if (exportOneFile(f, targetFolder)) { success++; } current++; // show progress when more than 5 percent tempVal = current * 100 / count; if (tempVal - 5 > curStep) { curStep = tempVal; progressBar.Value = curStep; RAPWPF.WpfApplication.DoEvents(); } } progressBar.Value = 100; RAPWPF.WpfApplication.DoEvents(); // show summary information MessageBox.Show("Export " + success + " files successfully, " + (count - success) + " files failed."); Close(); }
private void btnUpgrade_Click(object sender, RoutedEventArgs e) { // check input first if (string.IsNullOrEmpty(SourceFolder.Text)) { MessageBox.Show("Please select source folder!"); SourceFolder.Focus(); return; } if (Directory.Exists(SourceFolder.Text) == false) { MessageBox.Show("Source folder does not exist!"); SourceFolder.Focus(); return; } if (string.IsNullOrEmpty(TargetFolder.Text)) { MessageBox.Show("Please select target folder!"); TargetFolder.Focus(); return; } // make sure that the source folder and target folder don't overlap string sourceFolder = SourceFolder.Text.TrimEnd('\\'), targetFolder = TargetFolder.Text.TrimEnd('\\'); if (sourceFolder.IndexOf(targetFolder, StringComparison.OrdinalIgnoreCase) == 0 || targetFolder.IndexOf(sourceFolder, StringComparison.OrdinalIgnoreCase) == 0) { string extra = ""; if (sourceFolder.Length > targetFolder.Length) { extra = sourceFolder.Substring(targetFolder.Length); } else { extra = targetFolder.Substring(sourceFolder.Length); } if (extra.Length == 0 || extra[0] == '\\') { MessageBox.Show("Target folder cannot be a parent or child folder of source folder!"); TargetFolder.Focus(); return; } } // at least select one file type if (cbRvt.IsChecked == false && cbRfa.IsChecked == false) { MessageBox.Show("At least check one Revit file type!"); return; } upgradeFolder(sourceFolder, targetFolder, (cbRvt.IsChecked == true), (cbRfa.IsChecked == true)); }
private void btnExport_Click(object sender, RoutedEventArgs e) { // check select target folder if (string.IsNullOrEmpty(TargetFolder.Text)) { MessageBox.Show("Please select target folder!"); TargetFolder.Focus(); return; } string targetFolder = TargetFolder.Text; if (Directory.Exists(targetFolder) == false) { Directory.CreateDirectory(targetFolder); } int exported = exportFamilies(targetFolder, progressUpdater); MessageBox.Show(string.Format("Exported {0} families!", exported)); Close(); }