在C#中,如何准备一个对Windows目录名有效的字符串

Ahm*_*med 6 c#

我正在编写一个C#程序,它从文件中读取某些标记,并根据标记值创建目录结构.

现在这些标签中可能有任何内容,

如果标签名称不适合目录名称,我必须通过用适当的任何东西替换这些字符来使其适合.这样创建目录就不会失败.我正在使用以下代码,但我意识到这还不够..

path = path.replace("/","-");
path = path.replace("\\","-");
Run Code Online (Sandbox Code Playgroud)

请告知最好的方法是什么..

谢谢,

Nik*_*wal 5

导入System.IO命名空间和路径使用

Path.GetInvalidPathChars
Run Code Online (Sandbox Code Playgroud)

和文件名使用

Path.GetInvalidFileNameChars
Run Code Online (Sandbox Code Playgroud)

对于Eg

string filename = "salmnas dlajhdla kjha;dmas'lkasn";

foreach (char c in Path.GetInvalidFileNameChars())
    filename = filename.Replace(System.Char.ToString(c), "");

foreach (char c in Path.GetInvalidPathChars())
    filename = filename.Replace(System.Char.ToString(c), "");
Run Code Online (Sandbox Code Playgroud)

然后你可以使用Path.Combine添加标签来创建路径

string mypath = Path.Combine(@"C:\", "First_Tag", "Second_Tag"); 

//return C:\First_Tag\Second_Tag
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 3

您可以在此处使用无效字符的完整列表来根据需要进行替换。这些可以直接通过Path.GetInvalidFileNameCharsPath.GetInvalidPathChars方法获得。