开发者

C# - Unhandled Exception - Illegal Characters in Path

开发者 https://www.devze.com 2023-03-13 21:48 出处:网络
I am just testing some code at the moment, although when calling the StartRemoveDuplicate (when its compiled) an Exception is thrown, complaining about illegal characters:

I am just testing some code at the moment, although when calling the StartRemoveDuplicate (when its compiled) an Exception is thrown, complaining about illegal characters:

C# - Unhandled Exception - Illegal Characters in Path

My code is as follows:

 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(destinationFileP开发者_JAVA技巧ath, readLines.Distinct().ToArray(), Encoding.Default);
        }


        private static void StartRemoveDuplicate()
        {
            RemoveDuplicate("C:\test.txt", "C:\test2.txt");
        }

    }


Try to use @ before the string like :

@"C:\test.txt"

or to escpe the "\" caracter

"C:\\test.txt"


Backslash is considered a special character in C# strings, usually used to escape other characters. So you can tell it to treat backslashes as normal by prefixing your literals with @ before the quotes:

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

Or, you can escape it with double backslashes:

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


the \t in C:\test is probably being seen as a tab.


Use Path.Combine to combine parts of file paths. It handles the details of "\" characters.

0

精彩评论

暂无评论...
验证码 换一张
取 消