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