C# 如何让一个项目知道它是在哪里启动的?

C# 如何让一个项目知道它是在哪里启动的?,c#,.net,C#,.net,假设我有一个用C#和.NET制作的图片查看器应用程序。我已经将首选应用程序设置为使用C#应用程序查看图片 我想让我的程序知道它在哪里被调用。如何实现这一点?我认为您可以使用我认为您可以使用如果您使用它通过shell关联查看图片,您只需检查命令行中传入的图片文件名即可。您可以使用获取第一个文件名: // Should check to make sure there is at least one filename passed first... string imageFilename

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


我想让我的程序知道它在哪里被调用。如何实现这一点?

我认为您可以使用

我认为您可以使用

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

  // 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);

如果您想要工作目录,只需在启动时检查…

如果您使用它通过shell关联查看图片,您只需检查在命令行上传入的图片文件名即可。您可以使用获取第一个文件名:

  // 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)在执行过程中可能会发生更改。此外,当前目录可能不是应用程序所在的目录,例如,如果用户通过指定可执行文件的绝对路径从任意目录中的命令行运行它

如果您确实想要应用程序的“当前目录”,请使用Environment.CurrentDirectory,但如果您想知道应用程序的位置,可以使用以下方法:

  • System.Windows.Forms.Application.ExecutablePath (如果运行WinForm应用程序)

  • System.Windows.Forms.Application.StartupPath (如果运行WinForm应用程序)

  • System.Reflection.Assembly.GetEntryAssembly().Location

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

如果您确实想要应用程序的“当前目录”,请使用Environment.CurrentDirectory,但如果您想知道应用程序的位置,可以使用以下方法:

  • System.Windows.Forms.Application.ExecutablePath (如果运行WinForm应用程序)

  • System.Windows.Forms.Application.StartupPath (如果运行WinForm应用程序)

  • System.Reflection.Assembly.GetEntryAssembly().Location