Незаконный характер в output

У меня есть применение, которое экспортирует мне результат в архиве .csv.

Экспорт реализует несколько имен проектов, один из этих проектов у Вас есть в имени tag в HTML <b>.

После того, как старается создать этот архив, у меня выходит Незаконный eror character in path.

Я старался поместить в двойной результат кавычки:

"" + ProjectTitle + "" 

Но ошибка продолжает появляться у меня.

Как Вы могли бы избегать того, чтобы меня вытекли эта ошибка, и продолжать выполнение моей программы?

Большое спасибо перед рукой.

2
задан 17.10.2016, 18:00
4 ответа

Используя Linq, ты можешь отлаживать все незаконные символы с единственной линией кода:

filename = Path.GetInvalidFileNameChars().Aggregate(filename, (current, c) => current.Replace(c.ToString(), string.Empty));
2
ответ дан 24.11.2019, 13:05
  • 1
    после того, как старается включать решение используя LINQ у меня появляется другая ошибка (The specified path, file ямс, or both пахал too long. The fully qualified file ямс must be less than 260 characters, and the directory ямс must be less than 248 characters.) – A arancibia 17.10.2016, 19:31
  • 2
    Я функционирую в конце концов!! большое спасибо, я смог изменять конечный файл и уже я следую себе. Гораздо более легкий с LIN!! – A arancibia 17.10.2016, 22:41
  • 3
    Ничего, я радуюсь, что оно ты будет функционировать:) – Pikoh♦ 17.10.2016, 22:47

У имен файла есть серия не разрешенных символов. между ними они sГ-mbolos большего и меньшего, что использованы для redirecciГіn.

Я usarГ - в Path. GetInvalidFileNameChars , чтобы отлаживать символы, не позволенные начиная с имени проекта. Немного asГ-:

string GetValidFileName(string projectTitle) {
  StringBuilder fileName = new StringBuilder();
  List<char> invalidChars = Path.GetInvalidFileNameChars().ToList();
  for (int i = 0; i < projectTitle.Length; i++) {
    char c = projectTitle[i];
    if (invalidChars.Contains(c))
      fileName.Add('_');
    else
      fileName.Add(c);
  }
  return fileName.ToString();
}
1
ответ дан 24.11.2019, 13:05

Ошибка производится, потому что он существует много символов в именах файлов, которые не позволены для fileName. Поэтому имена файлов в операционных системах, поскольку windows ** у них Только есть символы A-Z, a-z, 0-9, типов места и в случаях не применения места они используют низкую схему "_", или простая схема "-"

ты Можешь пробовать одну soluciГіn немного проще, чем предыдущий posteada.

string fileName = "ProjectTitle"; foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { fileName = fileName.Replace(c, '_'); }

простой Восток цикл находит недействительные символы в filename и remplaza из-за "_"

0
ответ дан 24.11.2019, 13:05

Я рекомендую тебе создавать маршруты в файлы с методом Сочетайтесь вместо того, чтобы прилагать цепи:

rutaCompleta = Path.Combine(nombreCarpeta, Path.GetFileName(nombreArchivo.Replace("/","\\")));

Метод Сочетался

На этой странице ты можешь видеть больше методов для управления имен файлов и маршрутов (на английском):

Dotnet Перльс Пат

0
ответ дан 24.11.2019, 13:05