Удалите недопустимый (запрещенный, плохо) символы из FileName (или Каталог, Папка, Файл) [дубликат]

19
задан John Saunders 28 October 2011 в 14:55
поделиться

2 ответа

Попробуйте следующее

public string MakeValidFileName(string name) {
  var builder = new StringBuilder();
  var invalid = System.IO.Path.GetInvalidFileNameChars();
  foreach ( var cur in name ) {
    if ( !invalid.Contains(cur) ) {
      builder.Append(cur);
    }
  }
  return builder.ToString();
}
15
ответ дан 30 November 2019 в 01:44
поделиться

Если вы ищете "лаконичный", когда говорите простой:

public string StripInvalidChars(string filename) {
  return new String(
    filename.Except(System.IO.Path.GetInvalidFileNameChars()).ToArray()
  );
}

Тем не менее, я бы выбрал решение JaredPar. Его, вероятно, легче читать (в зависимости от вкуса, фона), моя интуиция подсказывает, что оно более эффективно (хотя я не уверен, насколько эффективно вы должны вычеркивать дюжину недопустимых символов из имени файла ограниченной длины), и его использование StringBuilder() кажется идеально подходящим к вашему примеру.

-1
ответ дан 30 November 2019 в 01:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: