The error I am receiving upon executing my code is: 'ArgumentException was unhandled. Illegal characters in path.'

I am using the following code to access my .xml file.

string appPath = Path.GetDirectoryName(System.Environment.CommandLine);
FileInfo fi = new FileInfo(appPath + @"\Books.xml");

I am doing this for a console application, as opposed to a WinForm. I have been exhaustively googling, as well as searching SO, for some time.

This is part of a homework project. This is the only problem I am running into however.

有帮助吗?

解决方案

string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
FileInfo fi = new FileInfo(Path.Combine(appPath, "Books.xml"));

其他提示

System.Environment.CommandLine does not return a path - it returns the value of the command line that was executed to run the application.

You probably need to use Assembly.GetExecutingAssembly().Location (as Furqan Safdar posted in his answer) instead.

The format of the EXE path returned by CommandLine is funky, so you need to do something like this:

string appPath = Path.GetDirectoryName(System.Environment.CommandLine.Trim('"', ' '));

That should work.

Use this code to get application directory:

var rootDirectory = AppDomain.Current.BaseDirectory;

Good luck!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top