Directory.delete 后,未删除文件系统的目录

问题描述 投票:0回答:1

我的问题与这个问题

有关

我正在使用 Directory 删除一个文件夹。复制后删除并删除其中的所有文件 -> 我正在检查它的根文件夹是否包含任何文件 -> 如果不包含,也删除该根文件夹。

if (!Directory.Exists(Archivepatz))
{
    Directory.CreateDirectory(Archivepatz);
    foreach (string files in MatrixArchiveFiles)
    {                                   
        string filetocopy = files.Split('\\').Last();
        File.Copy(files, Archivepatz + filetocopy);
        File.Delete(files);
    }
    Directory.Delete(xmlLogfilePathMatrix + MatrixArchiveDay + backslash + MatrixArchiveIP + backslash + MatrixArchiveDMC + backslash, true);
    DirectoryInfo dir2 = new DirectoryInfo(xmlLogfilePathMatrix + MatrixArchiveDay + backslash);    
    if (!dir2.EnumerateFiles("*", SearchOption.AllDirectories).Any())
    {
        if (Directory.Exists(xmlLogfilePathMatrix + MatrixArchiveDay + backslash))
        {
            Directory.Delete(xmlLogfilePathMatrix + MatrixArchiveDay + backslash, true);
        }
    }
}

它在我的测试环境(我的笔记本电脑)上运行正常,但在 PC 上运行该程序时会出现链接文章中的问题 -> 它说访问被拒绝我刚刚删除的目录(该目录也可见)在 Windows 资源管理器中,但是 - 就像我的程序一样 - 也无法访问它,因为它不存在于文件系统中)。

这是我迄今为止尝试过的:

在Directory.Delete后添加了一个中断,以检查什么情况。这里我发现被删除的文件夹仍然可见,但在Windows资源管理器中无法访问。

尝试在删除和“if (!dir2.”部分之间添加一些等待时间,希望足以处理该文件夹。

尝试了链接文章中的解决方案: ” 目录.Delete(tempFolder, true); while (Directory.Exists(tempFolder)) Thread.Sleep(0); ” 这导致了永无休止的循环。

两台机器均配备Windows 10操作系统。

您知道哪个 Windows 组件/设置/策略会导致这种差异吗?

感谢您的支持!

c# windows-10 directory.delete
1个回答
0
投票

您的程序在第二台机器上以管理员模式运行吗?

因为我遇到了非常类似的问题,并且由于我无法解释的原因,当前用户创建的目录只能由管理员帐户删除,除非我重新启动计算机(当然这在文件服务器上是不可能的^^ ')

© www.soinside.com 2019 - 2024. All rights reserved.