Многие ответили, что предлагают использовать Path.GetInvalidFileNameChars()
, что мне кажется плохим решением. Я рекомендую вам использовать белый список вместо черного, потому что хакеры всегда найдут способ обойти его.
Вот пример кода, который вы можете использовать:
string whitelist = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.";
foreach (char c in filename)
{
if (!whitelist.Contains(c))
{
filename = filename.Replace(c, '-');
}
}