在Windows资源管理器中打开文件夹结构时,DirectoryInfo.Delete(True)不会删除

Tod*_*ain 7 .net c# vb.net directoryinfo

假设我有一个文件夹结构,如:

C:\MyTemp
   - MySubFolder

如果我尝试删除此使用:

Dim path As String = "C:\MyTemp"
Dim di As System.IO.DirectoryInfo
di = System.IO.Directory.CreateDirectory(path)
di.CreateSubdirectory("MySubFolder")
di.Delete(True)
Run Code Online (Sandbox Code Playgroud)

这工作正常,除非我打开Windows资源管理器,我正在查看'MySubFolder'目录.然后我得到一个IOException 该目录不为空. - 单击确定将取消此操作,然后不删除文件夹结构.

有关如何正确执行此操作(即删除)的任何想法,即使在Windows资源管理器中打开文件夹结构时运行此代码也是如此?

pin*_*x33 1

看看这篇文章。IOException 可以从目录的打开句柄生成:This open handle can result from enumerating directories and files这正是在资源管理器中打开的作用。听起来实际的错误消息是通用的。