The following are the special characters which are not allowed in filename.
\/:*?"<>|#%&.{}~
Note: Period(.) is allowed but as filename can't be start or end with it and consecutive periods(.. or ...) are not allowed, considering it as invalid char for filename.
using System; using System.Linq; private static string GetValidFileName(string rawFileName) { string fileName = rawFileName; //special chars not allowed in filename string specialChars = @"\/:*?""<>|#%&.{}~"; //Replace special chars in raw filename with empty spaces to make it valid Array.ForEach(specialChars.ToCharArray(), specialChar => fileName = fileName.Replace(specialChar, ' ')); fileName = fileName.Replace(" ", string.Empty);//Recommended to remove the empty spaces in filename return fileName; }
To know more about filename constraints, look at the detailed post here.