C#删除文件夹之前,打开和不打开文件夹的区别在座的各位大佬能指导下小弟吗?

现象1:打开文件夹。执行删除后,在下一帧判断文件夹(Directory.Exists(topfolder))任然存在原因是

现象2: 不打开文件夹。执行删除后,在下一帧判断文件夹(Directory.Exists(topfolder))是不存在

现象3:如果在打开文件夹,执行删除后等待100毫秒,在下一帧判断文件夹(Directory.Exists(topfolder))不存在

问题1:想知道为什么会出现这种情况,是C#删除过程中,之间在处理什么造成了这种区别。

问题2:如果不想用等待100毫秒。有更好的方法吗?

public static void test()
{

        string topfolder = string.Format("{0}\\{1}", @"d:0(1)", "666");

        string filename = string.Format("{0}\\{1}", topfolder, "ReflectorData");
        //替换已存在的文件
        if (Directory.Exists(topfolder))
        {
            DirectoryInfo dir = new DirectoryInfo(topfolder);
            foreach (var item in dir.GetFiles())
            {
                item.Delete();
            }
            Directory.Delete(topfolder, true);
        }
        else
        {
            //Directory.CreateDirectory(topfolder); Console.WriteLine("Create");
        }
        Thread.Sleep(100);
        //创建文件夹
        if (!Directory.Exists(topfolder))
        {
            Directory.CreateDirectory(topfolder);
            Console.WriteLine("Create");
        }
        else
        {
            Console.WriteLine("error");
        }

        FileStream fs = new FileStream(filename, FileMode.Create);
        byte[] data = Encoding.Default.GetBytes(DateTime.Now.ToString());
        fs.Write(data, 0, data.Length);
        fs.Flush();
        fs.Close();
        fs.Dispose();
        Console.ReadLine();

    }

你说的应该是打开文件?打开文件夹是什么鬼。
如果没有别的程序访问,删除文件是同步的,也就是删除文件之后访问肯定不存在