代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

如何让程序知道它在哪里启动?

  •  0
  • Sergio Tapia  · 技术社区  · 15 年前

    假设我有一个用C和.NET制作的图片查看器应用程序。我已经将首选应用程序设置为使用C应用程序查看图片。

    我想让我的程序知道它在哪里被调用。我怎样才能做到这一点?

    3 回复  |  直到 15 年前
        1
  •  3
  •   Reed Copsey    15 年前

    如果您使用它通过shell关联来查看图片,您只需检查命令行中传入的图片文件名。你可以使用 Environment.GetCommandLineArgs 要获取第一个文件名:

      // Should check to make sure there is at least one filename passed first...
      string imageFilename = Environment.GetCommandLineArgs[1];
      string directory = System.IO.Path.GetDirectoryName(imageFilename);
    

    如果需要工作目录,只需检查 Environment.CurrentDirectory 在启动时…

        2
  •  0
  •   Gregoire    15 年前
        3
  •  0
  •   Dr. Wily's Apprentice    15 年前

    应用程序的当前目录(environment.current directory)可以在执行期间更改。此外,当前目录可能不是应用程序所在的目录,例如,如果用户通过指定可执行文件的绝对路径从任意目录中的命令行运行该目录。

    如果您真的想要应用程序的“当前目录”,那么使用environment.current directory,但是如果您想知道应用程序的位置,可以使用以下方法:

    • system.windows.forms.application.executable路径 (如果运行WinForm应用程序)

    • 系统.windows.forms.application.startuppath (如果运行WinForm应用程序)

    • system.reflection.assembly.getEntryassembly()。位置