繁体   English   中英

C# - 未处理的异常 - 路径中的非法字符

[英]C# - Unhandled Exception - Illegal Characters in Path

我现在只测试一些代码,虽然在调用StartRemoveDuplicate(编译时)抛出异常时,抱怨非法字符:

错误

我的代码如下:

 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");
        }

    }

尝试在字符串之前使用@:

@"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组合文件路径的各个部分。 它处理“\\”字符的细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM