1

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

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

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

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

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

4

4 回答 4

3
string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
FileInfo fi = new FileInfo(Path.Combine(appPath, "Books.xml"));
于 2012-10-05T19:41:24.763 回答
1

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

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

于 2012-10-05T19:38:34.673 回答
0

CommandLine 返回的 EXE 路径的格式很奇怪,因此您需要执行以下操作:

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

那应该行得通。

于 2012-10-05T19:43:16.777 回答
0

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

var rootDirectory = AppDomain.Current.BaseDirectory;

祝你好运!

于 2012-10-05T19:53:30.043 回答