为什么这个"If-Else if- else"语句不适用于process.start?

Ann*_*ins 0 c# if-statement

我很难理解为什么这个if-Else if- Else语句不起作用.

string JPRO_8_5_0 = @"C:\ProgramData\Package Cache\{0809190b-37e7-4852-9f0c-e183636739ba}\JproSetup.exe";
string JPRO_8_4_0 = @"C:\ProgramData\Package Cache\{270ce95e-5e84-4b6a-8d58-f8905b0a3cfc}\JproSetup.exe";


if (JPRO_8_5_0 != null)
{
    Process a = new Process();
    a.StartInfo.FileName = JPRO_8_5_0;
    a.StartInfo.Arguments = "/uninstall /quiet";
    a.Start();
}
else if (JPRO_8_4_0 != null)
{
    Process b = new Process();
    b.StartInfo.FileName = JPRO_8_4_0;
    b.StartInfo.Arguments = "/uninstall /quiet";
    b.Start();
}
else
{

}
Run Code Online (Sandbox Code Playgroud)

所以基本上我需要做的是让程序检查字符串中列出的文件,如果它在那里,运行静默安装程序.

我知道如果安装了该文件,第一个静默安装程序将会通过.但是,我需要它来检查多个版本,因为我们有大约20个不同的版本,我需要能够在任何时候删除.

当它去检查时,如果JPRO_8_5_0不存在,它会惊慌失措并说未找到该项目(是的,没有duh).我想要跳过任何未找到的版本,然后转到下一个版本进行检查.

关于为什么这对我不起作用的任何建议?

小智 7

你的"if/else"不检查文件是否存在,它只检查字符串是否为空(根据你的代码,它永远不会).

您需要修改代码以检查文件是否存在.请参见File.Exists(路径).