Как очистить переменную от лишних символов для создания папки в Windows

nomer8

Client
Регистрация
29.09.2009
Сообщения
14
Благодарностей
4
Баллы
3
Как очистить переменную от лишних символов для создания папки в Windows?
У меня название переменной используется для того что бы записывать с таким же названием папку и файлы в ней, но попадаются запрещённые символы либо неправильное окончание как например ?
https://support.microsoft.com/en-us/help/905231/information-about-the-characters-that-you-cannot-use-in-site-names--fo
Нагуглив этот список, я подумал что возможно есть иной способ отредактировать значение переменной чем проводить 10 экшенов с заменой текста и выискиванием неправильных символов. Экшен трим мне не помог. Пытался нагуглить подходяющую регулярку, в том числе по форуму, но без успеха.
Будьте добры, подскажите регулярку которая будет приводить к подходящему названию файла и папки для Windows.
 

nomer8

Client
Регистрация
29.09.2009
Сообщения
14
Благодарностей
4
Баллы
3

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 469
Благодарностей
574
Баллы
113
C#:
foreach(char c in System.IO.Path.GetInvalidFileNameChars()) {
    directoryName = directoryName.Replace(c, '_'); // с - недопустимые символы Windows в названии будет заменены на нижнее подчёркивание
}
 
Последнее редактирование:
  • Спасибо
Реакции: nomer8 и Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
правильнее будет так (по правилам экранирования мета-символов):
Код:
[\\/:\*\?"\<\>\|]
для этой цели можно воспользоваться еще и этой регуляркой:
Код:
[^\w\s]
но она конечно возьмет более широкий спектр символов, даже которые разрешены в именах файлов и папок, например +() и другие..
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)