如果我想获得可执行位置 这个命令有什么不同:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.GetCurrentDirectory();
System.Environment.CurrentDirectory;
有什么不同吗? 它指向不同的位置?
答案 0 :(得分:5)
Assembly.GetExecutingAssembly()。位置
获取正在执行的程序集的位置。在ASP.NET应用程序中,这可能因系统文件夹中的卷影复制程序集而异。当前正在执行的程序集的位置可能与托管进程的位置不同。
Directory.GetCurrentDirectory();
获取托管进程的当前工作目录。在大多数情况下,这将是可执行文件所在的目录,但可以使用SetCurrentDirectory方法以编程方式修改此工作目录。
System.Environment.CurrentDirectory;
托管进程的目录。
在桌面应用程序中,您将所有内容放在同一文件夹中,3可能会返回相同的内容。
答案 1 :(得分:2)
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
返回指定程序集的文件夹。
Directory.GetCurrentDirectory()
获取系统当前目录没有反斜杠。 Directory.GetCurrentDirectory()
System.Environment.CurrentDirectory
获取或设置系统当前目录。
答案 2 :(得分:2)
当前目录是工作目录,它不一定与包含程序集的目录相同。
例如,如果您在命令行上,在根C:\驱动器中并执行命令“SomeFolder \ MyProgram.exe”,则当前目录仍为C:\