ArgumentException:C#中的“路径中的非法字符”

时间:2012-10-05 19:36:39

标签: c# xml filepath argumentexception

我在执行代码时收到的错误是:'ArgumentException未处理。路径中的非法字符。'

我使用以下代码访问我的.xml文件。

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

我正在为控制台应用程序执行此操作,而不是WinForm。一段时间以来,我一直在谷歌搜索,以及搜索SO。

这是家庭作业项目的一部分。这是我遇到的唯一问题。

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

System.Environment.CommandLine不返回路径 - 它返回为运行应用程序而执行的命令行的值。

您可能需要使用Assembly.GetExecutingAssembly().Location(正如Furqan Safdar在his answer中发布的那样)。

答案 2 :(得分:0)

CommandLine返回的EXE路径的格式很时髦,所以你需要做这样的事情:

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

这应该有效。

答案 3 :(得分:0)

使用此代码获取应用程序目录:

var rootDirectory = AppDomain.Current.BaseDirectory;
祝你好运!