Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - Unhandled Exception - Illegal Characters in Path

Tags:

c#

.net

windows

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:

error

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(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default);
        }


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

    }
like image 205
Michael Avatar asked Jun 17 '11 16:06

Michael


2 Answers

Try to use @ before the string like :

@"C:\test.txt"

or to escpe the "\" caracter

"C:\\test.txt"
like image 149
Tomasz Jaskuλa Avatar answered Sep 29 '22 11:09

Tomasz Jaskuλa


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");
like image 32
Jerad Rose Avatar answered Sep 29 '22 11:09

Jerad Rose