【发布时间】:2013-01-04 16:10:38
【问题描述】:
使用 system.io.file 类删除文件后:
System.IO.File.Delete(openedPdfs.path);
如果文件被成功删除,我需要运行一些代码。 只要该方法不返回任何值,我就会在删除方法之后检查文件是否存在。如果它仍然存在,我认为操作失败了。
问题是,删除方法工作正常,但要删除的文件有几秒钟的时间。 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
{ ... }
【问题讨论】:
-
“我能想到的最优雅的方式是使用FileSystemWatcher 并订阅它的
Deleted事件。” stackoverflow.com/questions/9370012/… -
您是否担心删除成功,但在检查是否存在之前创建了一个同名的新文件?
-
@TimSchmelter FileSystemWatcher 已报告在负载下丢弃事件。有些人建议它可以用来提高响应能力,但他们仍然会以缩短的间隔进行轮询,以确保不会错过事件。 FSW 也可能会降低性能,尤其是在过滤器过于粗糙的情况下。
标签: c# asp.net .net asp.net-mvc asp.net-mvc-4