我希望有人可以解释为什么Directory.GetCurrentDirectory()根据我将命令行参数传递给应用程序的方式返回不同的结果(使用args运行vs在app.exe上拖动文件夹)
要直接进入它,请考虑以下代码:
public class Program { static void Main(string[] args) { Console.WriteLine("The current directory is {0}",Directory.GetCurrentDirectory()); if(args != null && args.Any()) Console.WriteLine("Command line arguments are {0}",String.Join(",",args)); Console.ReadLine(); } }
如果使用命令提示符构建并运行它,如下所示,则输出就是您所期望的.它将输出应用程序所在的当前目录.
C:\Projects\ArgumentTest\ApplicationA\bin\Debug\ApplicationA.exe C:\mydirectory The current directory is C:\Projects\ArgumentTest\ApplicationA\bin\Debug\ Command line arguments are C:\mydirectory
如果通过在应用程序上拖动文件或文件夹来构建和运行此程序,则会得到不同的结果.而不是返回预期的结果而不是Directory.GetCurrentDirectory()返回您在应用程序上拖动的第一个文件的路径.
其他信息:
> .NET 4.5
> Windows 2012R2(虚拟机)
>机器的完全管理员权限
希望有人可以提供一些见解.
解决方法
原文地址:https://www.jb51.cc/csharp/97943.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。