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

use*_*144 6 .net c# file windows-server-2008

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

在调试的测试平台(win xp)等,它工作正常.在Server 2008上
File.Exists报告true的文件最初几次不存在...

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

怎么了 ... ?

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

gdo*_*ica 31

File.DeleteMSDN上:

public static void Delete(string path)
Run Code Online (Sandbox Code Playgroud)

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

所以.它是经过审议的......没有true\ false也没有例外,只要删除该文件即可.

注意事项File.Exist:

public static bool Exists(string path)
Run Code Online (Sandbox Code Playgroud)

返回值 类型:System.Boolean

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

MSDN

  • +1只需为读者添加一个关于`File.Exists(String)`的注释. (3认同)