The characters you must now use are: ? < > | : \ / * "
    string PathFix(string path)
    {
        List<string> _forbiddenChars = new List<string>();
        _forbiddenChars.Add("?");
        _forbiddenChars.Add("<");
        _forbiddenChars.Add(">");
        _forbiddenChars.Add(":");
        _forbiddenChars.Add("|");
        _forbiddenChars.Add("\\");
        _forbiddenChars.Add("/");
        _forbiddenChars.Add("*");
        _forbiddenChars.Add("\"");
        for (int i = 0; i < _forbiddenChars.Count; i++)
        {
            path = path.Replace(_forbiddenChars[i], "");
        }
        return path;
    }
Tip: You can't include double-quote ("), but you can include 2 quotes ('').
In this case:
    string PathFix(string path)
    {
        List<string> _forbiddenChars = new List<string>();
        _forbiddenChars.Add("?");
        _forbiddenChars.Add("<");
        _forbiddenChars.Add(">");
        _forbiddenChars.Add(":");
        _forbiddenChars.Add("|");
        _forbiddenChars.Add("\\");
        _forbiddenChars.Add("/");
        _forbiddenChars.Add("*");
        //_forbiddenChars.Add("\""); Do not delete the double-quote character, so we could replace it with 2 quotes (before the return).
        for (int i = 0; i < _forbiddenChars.Count; i++)
        {
            path = path.Replace(_forbiddenChars[i], "");
        }
        path = path.Replace("\"", "''"); //Replacement here
        return path;
    }
You'll of course use only one of those (or combine them to one function with a bool parameter for replacing the quote, if needed)