【发布时间】:2013-09-07 20:30:42
【问题描述】:
我在 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\"";
所有存在检查都给我“假”回。 ProgramFiles-SpecialFolder 肯定指向正确的 (x86) 文件夹。而且可以肯定的是,7ZIP 安装在 C:\Program Files (x86)\7-ZIP\7z.exe 中,调用 CreateProcess 时,一切正常。所有 Exists() - 检查失败的原因是什么?这是一个已知的错误吗?
【问题讨论】:
-
第二个,尝试删除周围的
\"'s。 -
只是一个想法:请使用逐字文字“@”使您的代码可读
标签: c#