【问题标题】:How can I find which drive my exe is running from?如何找到运行我的 exe 的驱动器?
【发布时间】:2014-01-10 18:43:17
【问题描述】:

我正在编写一个需要能够从 USB 运行的 c# 应用程序,它会启动安装到 USB 的其他程序。不一定是运行它的计算机。我通过以下方式启动这些应用程序:

Process.Start("notmyprogram.exe");

这很好用,但是我发现这只有在将notmyprogram.exe. 安装到计算机硬盘驱动器时才有效。如果我想运行一个没有安装在电脑上的程序,而是运行到usb,我必须直接调用它,像这样:

Process.Start("D:\\Programs\\notmyprogram\\applicationinstalledonusb.exe");

D: 是我的操作系统分配的字母。但是,很明显,每台计算机的驱动器号都会发生变化,它并不总是 D。我的应用程序位于 USB 上,所以我的问题是:有什么方法可以找到我的 exe 是从哪个驱动器号运行的,这样我就可以将目录附加到驱动器号的结尾?或者,也许我只是以错误的方式去做,并且有更有效的方法来实现这一点?

【问题讨论】:

标签: c#


【解决方案1】:

试试这个(使用 System.IO):

string root = Path.GetPathRoot(System.Reflection.Assembly.GetEntryAssembly().Location);

另外,您可以使用 Path.GetFullPath() 代替 Path.GetPathRoot() 并从字符串中删除不需要的部分,而无需对文件夹名称进行硬编码

【讨论】:

  • 成功了!现在只需要将目录添加到根目录,谢谢!
  • @nope 无需重建完整路径。通过Path.GetDirectoryName(Path.GetFullPath(...)) 获取当前目录,然后使用Path.Combine 从那里导航。
猜你喜欢
  • 2012-06-29
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多