Directory.Delete()/ .Create()是同步的吗?

Fel*_*lix 7 .net c#

using System.IO;
Directory.Delete("someFolder",true);
Directory.Create("someFolder");
Run Code Online (Sandbox Code Playgroud)

删除目录或删除目录后是否会执行第三行?我是否必须将第一个命令放入"任务"并等待它完成?

Dou*_*oug 17

这是一个较旧的问题,但值得注意 - Directory.Delete最终调用RemoveDirectoryWindows函数,它将目录标记为要删除,但文件系统实际上不会删除它,直到所有文件句柄都关闭(请参阅文档).因此,完全可以返回Directory.Delete并找到目录仍然存在.

  • 谢谢,感谢您的最新回答:) (2认同)
  • 您可能需要考虑重命名该目录,然后将其删除;https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefile 对于异步没有同样的警告,所以也许这是删除排序的可靠方法-同步地。 (2认同)