我正在编写一个需要能够从usb运行的c#应用程序,并启动安装到usb的其他程序。不一定是它正在运行的计算机。我正在通过以下方式启动这些应用程序:
Process.Start("notmyprogram.exe");
这很好但是我发现只有在计算机硬盘安装notmyprogram.exe.
时才能使用。如果我想运行一个未安装在计算机上的程序,而是运行usb,我必须直接调用它,如下所示:
Process.Start("D:\\Programs\\notmyprogram\\applicationinstalledonusb.exe");
D:
是我的操作系统分配的字母。但是,显然驱动器号每台计算机都会更改,它不会一直是D.我的应用程序位于usb上,所以我的问题是:有没有办法找到我的exe运行的驱动器号,所以我可以将目录附加到驱动器号的结尾?或者也许我只是以错误的方式去做,并且有更有效的方法来实现这一目标?
答案 0 :(得分:9)
试试这个(使用System.IO):
string root = Path.GetPathRoot(System.Reflection.Assembly.GetEntryAssembly().Location);
此外,您可以使用 Path.GetFullPath() 代替Path.GetPathRoot()
并从字符串中删除不需要的部分,而无需对文件夹名称进行硬编码