即使文件为EXISTS,C#在`File.Exists`处的结果为FALSE

时间:2014-02-04 05:03:59

标签: c# .net winforms

正如标题所说,我不知道我的代码有什么问题,但即使文件存在,if (File.Exists)也会给出否定结果。

以下是我的代码

if (File.Exists(ZFileConfig.FileName.Replace(".xml", "_abc.xml")))

此处ZFileConfig.FileNameE:\\Application\\Application\\bin\\Debug\\resources\\FirstFile.xml

令人惊讶ZFileConfig.FileName.Replace(".xml", "_abc.xml")给了我E:\\Application\\Application\\bin\\Debug\\resources\\FirstFile_abc.xml这就是我们所需要的。 EVENTHOUGH IF愚蠢地返回TRUE。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:9)

您的文件实际上名为abc_RotateFlip.xml.xml

我无法想象为什么任何程序员都会允许隐藏文件扩展名,但是你的Excel文件显示它们确实是隐藏的。把它关掉!选择了解计算机内部的情况!

enter image description here

您还可以使用此注册表脚本更改该设置;

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"HideFileExt"=dword:00000000

答案 1 :(得分:2)

请查看FileInfo

FileInfo fi = new FileInfo(@"_abc.xml");
bool isExists = fi.Exists;
  

Generally如果要对文件执行单个操作,请使用File类。如果要对同一文件执行多个操作,请使用FileInfo。

     

这样做的原因是因为访问文件时进行了安全检查。创建FileInfo实例时,仅执行一次检查。但是,每次使用静态File方法时都会执行检查。

相关问题