gpt4 book ai didi

c# - 如何检查 System.IO.File.Delete 是否成功删除文件

转载 作者:可可西里 更新时间:2023-11-01 08:41:30 25 4
gpt4 key购买 nike

使用 system.io.file 类删除文件后:

System.IO.File.Delete(openedPdfs.path);

如果文件被成功删除,我需要运行一些代码。只要该方法不返回任何值,我就会在 delete 方法之后检查文件是否存在。如果它仍然存在,我认为操作失败。

问题是,删除方法工作正常,但要删除文件需要几秒钟。 Exist 函数返回 true,因为当时它正在检查文件是否存在。

我如何确定 System.IO.File.Delete(openedPdfs.path); 是否成功完成?

代码:

FileInfo file = new FileInfo(openedPdfs.path);    
System.IO.File.Delete(openedPdfs.path);
if (file.Exists == false)
{ ... }
else
{ ... }

最佳答案

正如其他人所指出的,File.Delete 方法将在失败的情况下抛出异常。

他们没有说的是在几乎所有情况并非在所有情况下都会抛出异常。

具体来说,File.Delete 方法不会在要删除的文件恰好不存在时抛出异常。


  • 如果我们查看 Official Microsoft Documentation for System.IO.File.Delete ,
  • 如果我们跳过抛出的异常列表,
  • 如果我们继续滚动浏览大量代码示例以到达“备注”部分,
  • 如果继续阅读本节,尽管它主要由琐碎的内容组成,例如
    • “使用任何相对或绝对路径指定文件名”
    • 和“相对路径信息被解释为相对于当前工作目录”
    • 和“要获取当前工作目录,请参阅 GetCurrentDirectory”
  • 然后我们到达了下面隐藏在噪音中的小 gem :

If the file to be deleted does not exist, no exception is thrown.

换句话说,这个函数有意内置了静默失败

在几乎所有情况下,无提示故障都对开发人员的破坏

关于c# - 如何检查 System.IO.File.Delete 是否成功删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com