gpt4 book ai didi

c# - Directory.Exists 保留目录句柄几秒钟

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

所以我正在尝试对负责共享目录的代码进行单元测试/集成测试。

所以我创建了共享驱动器,然后检查目录是否存在。首先在本地,然后通过它的共享名称。

Assert.IsTrue(Directory.Exists(testSharePath));
Assert.IsTrue(Directory.Exists(
String.Format(@"\\{0}\{0}", System.Environment:MachineName, testShareName));

在此之后,我当然想通过删除我刚刚创建的目录来清理自己。然而,这不起作用,因为“......它被另一个进程使用。”

经过一些试验,我发现如果我删除第二个断言,它会再次起作用。难道我做错了什么?哦,我还注意到,如果我在删除目录之前在那里睡 30 秒,它也会起作用。什么鬼?

编辑:我刚刚重新审视了这个问题,并尝试按照人们在评论中的建议首先明确取消共享该文件夹。就是这样。工作起来很有魅力。

最佳答案

根据@DWright 的要求,我将回答我自己的问题,因为没有其他人回答过,出于文档目的以及如果其他人找到这篇文章时为了清楚起见。

我的问题已通过在删除文件夹之前明确取消共享该文件夹而得到解决:

var share = String.Format("Win32_Share.Name='{0}'", shareName);
var managementObj = new ManagementObject(share);
managementObj.InvokeMethod("Delete", null, null);

关于c# - Directory.Exists 保留目录句柄几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216113/

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