我正在努力查看为什么此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
{
}
所以基本上我需要做的是让程序检查字符串中列出的文件,如果有,请运行无提示安装程序。
我知道如果我安装了该文件,第一个静默安装程序将通过。但是,我需要它来检查多个版本,因为我们需要随时删除大约20个不同的版本。
当检查时,如果JPRO_8_5_0不存在,它将惊慌并说找不到该项目(是的,没有)。我希望它跳过所有未找到的版本,然后转到下一个版本进行检查。
关于为什么这对我不起作用的任何建议?
答案 0 :(得分:7)
您的“ if / else”不检查文件是否存在,它仅检查字符串是否不为空(根据您的代码,该字符串永远不为空)。
您需要修改代码以检查文件是否存在。参见File.Exists(path)。
答案 1 :(得分:1)
希望对您有帮助。
using System.IO;
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";
try {
if (File.Exists(JPRO_8_5_0))
{
Process a = new Process();
a.StartInfo.FileName = JPRO_8_5_0;
a.StartInfo.Arguments = "/uninstall /quiet";
a.Start();
MessageBox.Show("JPRO_8_5_0 Exists.");
}
if (File.Exists(JPRO_8_4_0))
{
Process b = new Process();
b.StartInfo.FileName = JPRO_8_4_0;
b.StartInfo.Arguments = "/uninstall /quiet";
b.Start();
MessageBox.Show("JPRO_8_4_0 Exists.");
}
else
{
MessageBox.Show("File Does Not Exists.");
}
}
catch { }
答案 2 :(得分:-2)
您不需要其他部分。
> GBYOR-DT1
> GBYOR-DT2
> GBYOR-DT3
> GBYOR-DT4
> GBYOR-DT6
>
> ...GBYOR-DT5 does not exist so this is the next number to use for renaming.