Как получить «английское имя» для символа?

Я просто использовал эту очень полезную ссылку: Как мне проверить, является ли данная строка допустимым / допустимым именем файла в Windows ?

И внутри некоторого проверочного кода у меня есть что-то похожее (игнорируйте тот факт, что я не использую класс StringBuilder, и игнорируйте ошибку при формировании сообщения (не нужно сообщать им о «двоеточии» больше, чем один раз, если он появляется в строке более одного раза)):

string InvalidFileNameChars = new string(Path.GetInvalidFileNameChars());
Regex ContainsABadChar = new Regex("[" + Regex.Escape(InvalidFileNameChars) + "]");

MatchCollection BadChars = ContainsABadChar.Matches(txtFileName.Text);
if (BadChars.Count > 0)
{
    string Msg = "The following invalid characters were detected:\r\n\r\n";
    foreach (Match Bad in BadChars)
    {
        Msg += Bad.Value + "\r\n";
    }
    MessageBox.Show(Msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}

Этот MessageBox будет выглядеть примерно так (в примере с двоеточием):

- begin -

Следующие недопустимые символы обнаружено:

:

- конец -

Я бы хотел сказать что-то вроде:

- начало -

Обнаружены следующие недопустимые символы:

Двоеточие - >:

- end -

Мне нравится английское имя. Не убийца, но мне было любопытно, есть ли там какая-нибудь функция вроде (которой нет для класса Char, но может существовать в некоторых другой класс я не думаю) :

Char.GetEnglishName (':');

7
задан Community 23 May 2017 в 11:50
поделиться