How to remove illegal characters from path and filenames?

前端 未结 29 3362
离开以前
离开以前 2020-11-22 17:18

I need a robust and simple way to remove illegal path and file characters from a simple string. I\'ve used the below code but it doesn\'t seem to do anything, what am I miss

29条回答
  •  无人及你
    2020-11-22 17:36

    If you remove or replace with a single character the invalid characters, you can have collisions:

     abc
    >abc -> abc
    

    Here is a simple method to avoid this:

    public static string ReplaceInvalidFileNameChars(string s)
    {
        char[] invalidFileNameChars = System.IO.Path.GetInvalidFileNameChars();
        foreach (char c in invalidFileNameChars)
            s = s.Replace(c.ToString(), "[" + Array.IndexOf(invalidFileNameChars, c) + "]");
        return s;
    }
    

    The result:

      [1]abc
     >abc -> [2]abc
    

提交回复
热议问题