Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我会收到消息;访问路径';bootmgr';“被拒绝”;试图清除目录内容时_C# - Fatal编程技术网

C# 为什么我会收到消息;访问路径';bootmgr';“被拒绝”;试图清除目录内容时

C# 为什么我会收到消息;访问路径';bootmgr';“被拒绝”;试图清除目录内容时,c#,C#,在HP Spectre上使用Windows 10 Home(20H2) 我正在尝试使用以下代码清除目录的内容 public int clearDirectory(string path) { DirectoryInfo targetDir = new DirectoryInfo(path); foreach (FileInfo file in targetDir.GetFiles()) { file.Delete(); } foreach

在HP Spectre上使用Windows 10 Home(20H2)

我正在尝试使用以下代码清除目录的内容

public int clearDirectory(string path)
{
    DirectoryInfo targetDir = new DirectoryInfo(path);
    foreach (FileInfo file in targetDir.GetFiles())
    {
        file.Delete();
    }
    foreach (DirectoryInfo dir in targetDir.GetDirectories())
    {
        dir.Delete(true);
    }
    return 0;
}
目标目录位于USB SanDisk上,它的根目录中有一个我创建的目录(有许多子目录)和以下SanDisk文件

SanDiskMemoryZone_AppInstaller.apk
SanDiskMemoryZone_QuickStartGuide.pdf
我将USB驱动器的路径替换为C驱动器上的目录路径,这很好


bootmgr是如何参与其中的?

在Windows中,您可以为每个驱动器声明它是否可引导。 Windows中的可引导分区是一个名为system partition的隐藏驱动器(这也是您尝试删除C:-驱动器时未显示错误的原因)

您的SAN驱动器似乎正在使用一个文件系统,该文件系统具有一个仅用于系统帐户的带ACL的隐藏文件夹

这就是为什么会出现这个错误。您没有删除文件/文件夹的访问权限

一个解决方案:

  • 更改代码s.t。它只选择没有前导点的文件,如正则表达式:
    ^\。
如果这仍然不能解决您的错误,那么您应该尝试使用提升的进程(具有管理员权限)来解决此问题

备注:在删除U盘上的所有内容之前,只需重新格式化U盘,然后删除所有文件,会更容易。
可能需要对此进行调查。

可能有一个名为bootmgr的隐藏文件或文件夹,您无法删除它。此闪存驱动器是否在某个时候用作安装盘?bootmgr存在于任何可引导磁盘上,包含操作系统引导代码。它的文件属性包括“隐藏”和“系统”,用于警告您不要删除它。通过使用DirectoryInfo.Attributes改进C#代码,避免删除回收站和系统还原点。和FileInfo.Attributes,避免删除bootmgr等。我不明白您所说的更改代码s.t是什么意思。它只选择没有前导点的文件,如regex:^\。使用diskpart I清理驱动器,使驱动器上的所有空间都未分配。然后,我用Disk Manager创建了一个新卷,并在USB驱动器上重新创建了我的目录。然而,问题仍然存在。我仍然收到拒绝访问bootmgr消息。问题最终在于,不知怎么回事,bootmgr文件变成了我试图删除的某个目录的一部分。在从头开始重建目录的内容时,问题消失了。您使用了什么文件格式系统?EXFAT?或者U盘是预先格式化的?