DirectoryInfo throws "Argument Exception: The path is not of a legal form" for the correct path

Robert D picture Robert D · Apr 18, 2011 · Viewed 15.9k times · Source

When I use DirectoryInfo with a specific path (say @"C:\") in my ASP.NET MVC application, it returns ok but when I try to use the exactly same path in my external C# library, it throws the above exception. I have checked the path a thousand time and the path is legal. Can somebody tell me the reason?

Edit: Here's the code:

var di = new DirectoryInfo("C:\\App\\Files\\");
    //        var file = di.GetFiles(Id + ".*").First();
    //        if (file != null) return file.FullName;
    //        return string.Empty;

The above code is used inside a property.

Thanks.

Answer

manojlds picture manojlds · Apr 18, 2011

From documentation:

path contains invalid characters such as ", <, >, or |.

http://msdn.microsoft.com/en-us/library/system.io.directoryinfo.directoryinfo.aspx

See if your actual path has any of these. I know you said you have checked if the path is legal, but this is the only case. Maybe giving the exact path here will help.

Edit:

Use Path.GetInvalidPathChars() and Path.GetInvalidFileNameChars() and see if anything that is illegal has been added.