private void Browse_OnExecuted(object sender, ExecutedRoutedEventArgs e) { var parameter = e.Parameter as string; if (parameter == null) { return; } var isSource = (parameter.Equals("Source", StringComparison.OrdinalIgnoreCase)); var isDestination = (parameter.Equals("Destination", StringComparison.OrdinalIgnoreCase)); if (isSource) { var dlg = new CommonOpenFileDialog("Open File"); dlg.Filters.Add(new CommonFileDialogFilter("Coalesced Files", "*.bin;*.xml")); dlg.Filters.Add(new CommonFileDialogFilter("Binary Coalesced Files", "*.bin")); dlg.Filters.Add(new CommonFileDialogFilter("XML Coalesced Files", "*.xml")); if (dlg.ShowDialog() != CommonFileDialogResult.Ok) { return; } SourcePath = dlg.FileName; var sourceExtension = Path.GetExtension(SourcePath) ?? ""; switch (sourceExtension.ToLower()) { case ".bin": { SourceType = CoalescedType.Binary; break; } case ".xml": { SourceType = CoalescedType.Xml; break; } } if (!string.IsNullOrEmpty(DestinationPath) && ChangeDestinationCheckBox.IsChecked == false) { return; } switch (SourceType) { case CoalescedType.Binary: { DestinationPath = Path.ChangeExtension(SourcePath, null); DestinationType = CoalescedType.Xml; break; } case CoalescedType.Xml: { DestinationPath = Path.ChangeExtension(SourcePath, "bin"); DestinationType = CoalescedType.Binary; break; } } } else if (isDestination) { switch (SourceType) { case CoalescedType.Binary: { var dlg = new CommonOpenFileDialog("Select Folder") { IsFolderPicker = true }; if (dlg.ShowDialog() != CommonFileDialogResult.Ok) { return; } DestinationPath = dlg.FileName; //DestinationType = CoalescedType.Binary; break; } case CoalescedType.Xml: { var dlg = new CommonOpenFileDialog("Open File"); dlg.Filters.Add(new CommonFileDialogFilter("Coalesced Files", "*.bin;*.xml")); dlg.Filters.Add(new CommonFileDialogFilter("Binary Coalesced Files", "*.bin")); dlg.Filters.Add(new CommonFileDialogFilter("XML Coalesced Files", "*.xml")); if (dlg.ShowDialog() != CommonFileDialogResult.Ok) { return; } DestinationPath = dlg.FileName; /*if (!Path.HasExtension(DestinationPath)) * { * return; * } * * var destinationExtension = Path.GetExtension(DestinationPath) ?? ""; * * switch (destinationExtension.ToLower()) * { * case ".bin": * { * break; * } * case ".xml": * { * break; * } * }*/ break; } } } }
public void BrowseSource() { var dlg = new CommonOpenFileDialog("Open File"); dlg.Filters.Add(new CommonFileDialogFilter("Coalesced Files", "*.bin;*.xml")); dlg.Filters.Add(new CommonFileDialogFilter("Binary Coalesced Files", "*.bin")); dlg.Filters.Add(new CommonFileDialogFilter("XML Coalesced Files", "*.xml")); if (dlg.ShowDialog() != CommonFileDialogResult.Ok) { return; } SourcePath = dlg.FileName; var sourceExtension = Path.GetExtension(SourcePath) ?? ""; switch (sourceExtension.ToLower()) { case ".tlk": { SourceType = CoalescedType.Binary; break; } case ".xml": { SourceType = CoalescedType.Xml; break; } default: { SourceType = CoalescedType.None; break; } } if (/*!string.IsNullOrEmpty(DestinationPath) && */ !AutoChangeDestination) { return; } switch (SourceType) { case CoalescedType.Binary: { DestinationPath = Path.ChangeExtension(SourcePath, "xml"); DestinationType = CoalescedType.Xml; break; } case CoalescedType.Xml: { DestinationPath = Path.ChangeExtension(SourcePath, "bin"); DestinationType = CoalescedType.Binary; break; } default: { DestinationType = CoalescedType.None; return; } } }