我想创建一个转换文件的程序。我希望用户能够将可执行文件放置在任何目录中,并且在执行该程序(双击.exe)时,我希望该程序处理 exe文件所在的当前文件夹中的所有文件 。程序如何确定当前正在执行的路径?
我尝试过,System.Windows.Forms.Application.StartupPath但这似乎是错误的方式。
System.Windows.Forms.Application.StartupPath
有任何想法吗?
你应该 不 使用Directory.GetCurrentDirectory()你的情况,当前目录可以从执行文件夹不同,尤其是当你通过一个快捷方式执行程序。
Directory.GetCurrentDirectory()
最好Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);用于您的目的。这将返回当前正在执行的程序集所在的路径名。
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
正如 SonerGönül 在回答中所说的,虽然我建议的方法使您可以区分执行程序集,输入程序集或任何其他加载的程序集,
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
可能也足够。这等于
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);