不同的可执行位置

本文关键字:位置 可执行 | 更新日期: 2023-09-27 18:11:23

如果我想获得可执行位置

:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.GetCurrentDirectory();
System.Environment.CurrentDirectory;

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

不同的可执行位置

Assembly.GetExecutingAssembly () .Location

获取执行程序集的位置。在ASP中。NET应用程序,这可能会因系统文件夹中的影子复制程序集而有所不同。当前正在执行的程序集的位置可能与宿主进程的位置不同。

Directory.GetCurrentDirectory ();

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

System.Environment.CurrentDirectory;

主机进程启动的目录。


在桌面应用程序中,所有的东西都在同一个文件夹中,3可能会返回相同的值

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

  2. 根据MSDN,
  3. Directory.GetCurrentDirectory() 获得系统当前目录,不带反斜杠。Directory.GetCurrentDirectory ()

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

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

例如,如果你在命令行中,在根目录C:'驱动器中执行"SomeFolder'MyProgram.exe"命令,当前目录仍然是C:'