我有一个正在运行的C#程序,我想在不同的目录中启动另一个可执行文件。
我在事件上有这个代码:
string path = "Y:\Program\test.exe";
Process.Start(path);
问题是,为了让程序正常工作,它需要从exe文件所在的settings.ini获取信息,但它需要从我尝试启动第二个程序的程序文件夹中的settings.ini。当我通过双击打开它的文件夹时,test.exe工作正常。可能是什么问题?
答案 0 :(得分:2)
您需要通过ProcessStartInfo.WorkingDirectory
告诉流程工作目录是什么:
var processStartInfo = new ProcessStartInfo
{
WorkingDirectory = @"Y:\Program",
FileName = @"Y:\Program\test.exe",
};
Process.Start(processStartInfo);
修改强>
要从用户获取目录,您可以使用DirectoryInfo.FullName
:
var userFileInfo = new FileInfo(userInsertedVariableHere);
var parentDirectory = userFileInfo.Directory.FullName;