我在 C# 中使用 File.Exists 有一个奇怪的问题,可以在多台 PC 上重现。我将其视为 .NET 4 库中的错误。
我使用 7ZIP 并通过 C# 程序将其自动化,我调用 CreateProcess 并用它压缩和解压缩文件。为此,我需要找出是否安装了 7ZIP 以及安装在何处,因为我不想依赖 PATH 变量。
所以这是代码的一部分:
if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\7-Zip\\7z.exe"))
clsGlobal.gstr_ZIP_PROG_MIT_PFAD = "\"" + Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\7-Zip\\7z.exe\"";
else if (File.Exists("\"C:\\Program Files (x86)\\7-Zip\\7z.exe\""))
clsGlobal.gstr_ZIP_PROG_MIT_PFAD = "\"C:\\Program Files (x86)\\7-Zip\\7z.exe\"";
所有 Exist-Checks 都给我“假”回。ProgramFiles-SpecialFolder 肯定指向正确的 (x86) 文件夹。而且可以肯定的是,7ZIP 安装在 C:\Program Files (x86)\7-ZIP\7z.exe 中,调用 CreateProcess 时,一切正常。所有 Exists() - 检查失败的原因是什么?这是一个已知的错误 ?