我在执行代码时收到的错误是:'ArgumentException未处理。路径中的非法字符。'
我使用以下代码访问我的.xml文件。
string appPath = Path.GetDirectoryName(System.Environment.CommandLine);
FileInfo fi = new FileInfo(appPath + @"\Books.xml");
我正在为控制台应用程序执行此操作,而不是WinForm。一段时间以来,我一直在谷歌搜索,以及搜索SO。
这是家庭作业项目的一部分。这是我遇到的唯一问题。
答案 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;
祝你好运!