gpt4 book ai didi

c# - 将进程的工作目录设置为 exe 的路径?

转载 作者:行者123 更新时间:2023-11-30 16:17:14 24 4
gpt4 key购买 nike

我有一个程序可以监视进程并在它们关闭或失败时重新启动它们。它最初是一个工作项目,但我把它带回家以在我的家庭服务器上保持游戏服务器运行,即 Minecraft、Terraria 和最近的 Cube World。该程序是独立的,位于我的桌面上。当它启动 Cube World 的 Server.exe 时,该 exe 通常会在 Cube World 的文件夹中创建的所有文件都会在桌面上创建。我的猜测是我的程序有一个桌面工作目录,所以它启动的任何子进程(如 Server.exe)都将有相同的工作目录。问题不仅仅针对 Cube World 在家中的服务器。该程序与重要的后端进程一起保持活跃。

如果我在 C# 中使用 ProcessStartInfo 启动进程,如何确保启动进程的工作目录是 exe 所在的目录?该进程可能以相对路径名开始,或者可能在系统路径上,这使得这有点困难。

最佳答案

使用ProcessStartInfo.WorkingDirectory结合Check if an executable exists in the windows path以确定可执行文件的路径。

您可能需要先检查相对路径,我认为它也应该处理绝对路径(我没有测试以下代码,但对我来说看起来没问题):

string myAppPath = System.Reflection.Assembly.GetEntryAssembly().Location;
if (File.Exists(Path.Combine(myAppPath, pathToExe)))
{
workDir = Path.GetDirectoryName(Path.Combine(myAppPath, pathToExe));
}
else
{
// Use the referenced article to iterate thru System PATH to find the right path
}

关于c# - 将进程的工作目录设置为 exe 的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com