C# – 未处理的exception – path中的非法字符

我只是在testing一些代码,虽然当调用StartRemoveDuplicate(当它被编译时)抛出一个Exception时,抱怨非法字符:

错误

我的代码如下:

class Program { static void Main(string[] args) { foreach (string exename in System.IO.File.ReadAllLines("test.txt")) { Process.Start("test.exe", "\"" + exename + "\"").WaitForExit(); } StartRemoveDuplicate(); } private static void RemoveDuplicate(string sourceFilePath, string destinationFilePath) { var readLines = File.ReadAllLines(sourceFilePath, Encoding.Default); File.WriteAllLines(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default); } private static void StartRemoveDuplicate() { RemoveDuplicate("C:\test.txt", "C:\test2.txt"); } } 

Solutions Collecting From Web of "C# – 未处理的exception – path中的非法字符"

尝试使用@之前的字符串,如:

 @"C:\test.txt" 

或者避开“\”字符

 "C:\\test.txt" 

反斜杠被认为是C#字符串中的一个特殊字符,通常用于转义其他字符。 所以你可以通过在引号前用@作为前缀,来告诉它像往常一样处理反斜杠:

 RemoveDuplicate(@"C:\test.txt", @"C:\test2.txt"); 

或者,你可以用双反斜线来逃避它:

 RemoveDuplicate("C:\\test.txt", "C:\\test2.txt"); 

C:\ test中的\ t可能被视为一个选项卡。

使用Path.Combine合并文件路径的各个部分。 它处理“\”字符的细节。