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

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

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

Всем привет. Столкнулся со странной проблемой. Имеется такой код:
private void BtSelectDwgFile_OnClick(object sender, RoutedEventArgs e)
{
    try
    {
        var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog("Выбор чертежа для добавления в базу", _dwgBaseFolder, "dwg", "name",
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites |
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions |
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls |
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder |
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder |
            Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
        var needLoop = true;
        while (needLoop)
        {
            var ofdresult = ofd.ShowDialog();
            if (ofdresult == System.Windows.Forms.DialogResult.OK)
            {
                var selectedFile = ofd.Filename;
                if (selectedFile.Contains(_dwgBaseFolder))
                {
                    if (DwgBaseHelpers.Is2010DwgVersion(selectedFile))
                    {
                        TbSourceFile.Text = selectedFile.TrimStart(_dwgBaseFolder.ToCharArray());
                        BtAccept.IsEnabled = true;
                        needLoop = false;
                    }
                    else
                    {
                        MpMsgWin.Show("Выбранный файл должен быть сохранен в версии AutoCAD 2010!");
                    }
                }
                else
                {
                    MpMsgWin.Show("Указанный файл должен находиться в подпапке папки " + _dwgBaseFolder);
                }
            }
            else if (ofdresult == System.Windows.Forms.DialogResult.Cancel) return;
            else needLoop = false;
        }
    }
    catch (Exception exception)
    {
        MpExWin.Show(exception);
    }
    finally
    {
        Focus();
    }
}
Запускаю отладку приложения, тестирую и получаю такое: в переменной

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
Листинг программы
public static string TrimStart(string target, string trimString)
{
    var result = target;
    while (result.StartsWith(trimString))
    {
        result = result.Substring(trimString.Length);
    }
    return result;
}

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы