Чтобы удалить недопустимые символы каталога в C#, вы можете использовать различные методы. Вот несколько примеров:
Метод 1: использование регулярных выражений
Вы можете использовать регулярные выражения для удаления недопустимых символов из пути к каталогу. Вот пример:
using System.Text.RegularExpressions;
string directoryPath = "C:/my|invalid?path";
string cleanedPath = Regex.Replace(directoryPath, "[^a-zA-Z0-9-._]", "");
Console.WriteLine(cleanedPath);
Этот фрагмент кода удаляет из строки directoryPath
любые символы, кроме букв (прописных или строчных), цифр, дефисов, точек и подчеркиваний.
Метод 2. Использование LINQ и манипуляций со строками.
Другой подход — использовать LINQ вместе с методами манипуляции со строками, такими как Where
и ToArray
. Вот пример:
using System.Linq;
string directoryPath = "C:/another|invalid?path";
char[] invalidChars = {'/', '\\', ':', '*', '?', '"', '<', '>', '|'};
string cleanedPath = new string(directoryPath.Where(c => !invalidChars.Contains(c)).ToArray());
Console.WriteLine(cleanedPath);
В этом методе массив invalidChars
содержит символы, которые вы хотите удалить из строки directoryPath
. Метод Where
отфильтровывает эти символы, а полученные символы преобразуются обратно в строку с помощью конструктора new string()
.