当文件不存在时,File.Delete不会抛出错误

时间:2012-03-27 07:05:33

标签: c# .net file windows-server-2008

生产平台上出现奇怪的问题(64位win 2008服务器)。 它与File.ExistsFile.Delete方法相关联......

在debug(win xp)等测试平台上运行正常。在Server 2008上的前几次
File.Exists报告了true该文件不存在...

当我进行进一步的测试时File.Exists最终报告错误的文件不存在。
但是File.Delete在尝试删除不存在的文件时没有抛出任何错误......

发生了什么......?

我在某处读到系统虚拟化可能会搞砸了......但是没有找到任何文件:%userprofile%\AppData\Local\VirtualStore

1 个答案:

答案 0 :(得分:27)

MSDN上的

File.Delete

public static void Delete(string path)
  

如果要删除的文件不存在,则不会引发异常。

因此。它被审议了....没有true \ false并且没有例外,只要删除该文件即可。

关于File.Exist的注意事项:

public static bool Exists(string path)

返回值类型:System.Boolean

  如果调用者具有所需权限并且路径包含现有文件的名称,则

true ;否则, false 。如果path为Nothing,无效路径或零长度字符串,则此方法也会返回 false 。如果调用者没有足够的权限来读取指定的文件,不会抛出任何异常,并且无论路径是否存在,该方法都会返回false。

MSDN