.NET 4.x Некорректная работа TrimStart() - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Столкнулся со странной проблемой. Имеется такой код:
Листинг программы
  1. private void BtSelectDwgFile_OnClick(object sender, RoutedEventArgs e)
  2. {
  3. try
  4. {
  5. var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog("Выбор чертежа для добавления в базу", _dwgBaseFolder, "dwg", "name",
  6. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites |
  7. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions |
  8. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls |
  9. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder |
  10. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder |
  11. Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
  12. var needLoop = true;
  13. while (needLoop)
  14. {
  15. var ofdresult = ofd.ShowDialog();
  16. if (ofdresult == System.Windows.Forms.DialogResult.OK)
  17. {
  18. var selectedFile = ofd.Filename;
  19. if (selectedFile.Contains(_dwgBaseFolder))
  20. {
  21. if (DwgBaseHelpers.Is2010DwgVersion(selectedFile))
  22. {
  23. TbSourceFile.Text = selectedFile.TrimStart(_dwgBaseFolder.ToCharArray());
  24. BtAccept.IsEnabled = true;
  25. needLoop = false;
  26. }
  27. else
  28. {
  29. MpMsgWin.Show("Выбранный файл должен быть сохранен в версии AutoCAD 2010!");
  30. }
  31. }
  32. else
  33. {
  34. MpMsgWin.Show("Указанный файл должен находиться в подпапке папки " + _dwgBaseFolder);
  35. }
  36. }
  37. else if (ofdresult == System.Windows.Forms.DialogResult.Cancel) return;
  38. else needLoop = false;
  39. }
  40. }
  41. catch (Exception exception)
  42. {
  43. MpExWin.Show(exception);
  44. }
  45. finally
  46. {
  47. Focus();
  48. }
  49. }
Запускаю отладку приложения, тестирую и получаю такое: в переменной

selectedFile

значение "E:\\Проекты\\ModPlu5\\ModPlus_builded\\Data\\DwgBase\\Drawings\\Тестовая папка\\Тестовый Чертеж.dwg" в переменной

_dwgBaseFolder

значение "E:\\Проекты\\ModPlu5\\ModPlus_builded\\Data\\DwgBase" Но после строчки

TbSourceFile.Text = selectedFile.TrimStart(_dwgBaseFolder.ToCharArray());

в текстовом поле я получаю результат "rawings\\Тестовая папка\\Тестовый Чертеж.dwg" Т.е. метод TrimStart() отрезает за компанию и первую букву! Даже не знаю в какую сторону начать копать проблему

Решение задачи: «.NET 4.x Некорректная работа TrimStart()»

textual
Листинг программы
  1. public static string TrimStart(string target, string trimString)
  2. {
  3.     var result = target;
  4.     while (result.StartsWith(trimString))
  5.     {
  6.         result = result.Substring(trimString.Length);
  7.     }
  8.     return result;
  9. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы