我目前正在开发一个AI程序。在我的一个命令中,我使用了Process.Start来打开一个文件。我想知道如何基于Process.Start是否失败来创建一个else if语句。如果Process.Start失败了,我希望它能执行else if语句中的代码块。有人知道怎么做吗?如果我听起来像个新手或其他什么的,我很抱歉。我刚开始编程,而且我只有14岁,所以我还不懂很多东西。
string r = e.Result.Text; if (r.Contains("your code")) { say("正在打开我的代码"); Process.Start("C:/Users/Sukorow/Desktop/My Creations/Yuki Public Release/Yuki Public Release.sln"); }
回答:
如果Process.Start成功,它会返回true,否则返回false,所以你可以这样做:
var process = new Process(){ StartInfo = new System.Diagnostics.ProcessStartInfo() { FileName = "[your file]" }};if (!process.Start()){ // 处理启动失败的情况}
另外,再补充一点,我不建议在代码中硬编码.sln文件的位置。如果你更改了文件夹结构,应用程序就会崩溃,而且任何你分发可执行文件的人都必须拥有与你完全相同的文件夹结构,否则调用将会失败。我建议创建一个App.config文件,请参阅以下文档:https://msdn.microsoft.com/en-us/library/ms184658.aspx
基本思路是,你可以添加一个键值对来存储文件的位置 – 例如
<add key="folderName" value="C:\...."/>
这样你就可以在不需要重新编译的情况下修改它了。