不同的可执行位置

时间:2011-10-17 14:57:44

标签: c# directory location

如果我想获得可执行位置 这个命令有什么不同:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

Directory.GetCurrentDirectory();

System.Environment.CurrentDirectory;

有什么不同吗? 它指向不同的位置?

3 个答案:

答案 0 :(得分:5)

  

Assembly.GetExecutingAssembly()。位置

获取正在执行的程序集的位置。在ASP.NET应用程序中,这可能因系统文件夹中的卷影复制程序集而异。当前正在执行的程序集的位置可能与托管进程的位置不同。

  

Directory.GetCurrentDirectory();

获取托管进程的当前工作目录。在大多数情况下,这将是可执行文件所在的目录,但可以使用SetCurrentDirectory方法以编程方式修改此工作目录。

  

System.Environment.CurrentDirectory;

托管进程的目录。


在桌面应用程序中,您将所有内容放在同一文件夹中,3可能会返回相同的内容。

答案 1 :(得分:2)

  1. Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)返回指定程序集的文件夹。

  2. 根据MSDN,
  3. Directory.GetCurrentDirectory() 获取系统当前目录没有反斜杠。 Directory.GetCurrentDirectory()

  4. System.Environment.CurrentDirectory 获取设置系统当前目录。

答案 2 :(得分:2)

当前目录是工作目录,它不一定与包含程序集的目录相同。

例如,如果您在命令行上,在根C:\驱动器中并执行命令“SomeFolder \ MyProgram.exe”,则当前目录仍为C:\