5

在以下获取正在执行的程序集的工作目录的方法中,是否有关于哪一种被认为是最佳实践的建议?我从我的开发人员那里听说方法 1 在 Windows 7 SP1 64 位上有时会失败,除非以提升的权限运行(以管理员身份运行)。但是方法 2 一直有效。前者有时会失败是否有原因?

方法一:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location())

方法二:

Environment.CurrentDirectory
4

1 回答 1

6

Environment.CurrentDirectory是获取工作目录的方法。使用反射也可能更慢。

但要小心:这两种方法不一样:方法 A 始终返回存储程序集的目录,其中 asEnvironment.CurrentDirectory为您提供当前工作目录,该目录可以在应用程序生命周期内更改,asEnvironment.CurrentDirectory也可用于设置工作目录目录和其他方法也可以更改它(例如文件打开/保存对话框)。

于 2012-01-20T10:29:46.040 回答