首页 > 解决方案 > c#删除空文件夹

问题描述

我有以下代码,我正在尝试删除它在大多数情况下都可以使用的文件夹,但偶尔我会收到 IOException 并且 Visual Studio 说“访问被拒绝”路径存在并且文件夹说它是空的,并且没有子文件夹,但我可以不要使用以下代码将其删除。任何建议为什么这会在大部分时间但并非总是有效以及如何解决它

if ( Directory.Exist( dir2 + "\\Inv")
   {
    System.IO.DirectoryInfo dirinv = new System.IO.DirectoryInfo(dir2 + "\\Inv");
    setAttributesNormal(dirinv);
    try
    {
         Directory.Delete(dir2 + "\\Inv", true);
    }
    catch (IOException)
    {
        Directory.Delete(dir2 + "\\Inv", true);
    }
    catch (UnauthorizedAccessException)
    {
        Directory.Delete(dir2 + "\\Inv", true);
    }
 }
}

private void setAttributesNormal(DirectoryInfo dir)
{
     foreach (var subDir in dir.GetDirectories())
     setAttributesNormal(subDir);
     foreach (var file in dir.GetFiles())
    {
         file.Attributes = FileAttributes.Normal;
     }
}

标签: c#

解决方案


Run as Administrator右键单击应用程序,通过文件资源管理器运行程序(或者如果在 Visual Studio 中运行,则在 Visual Studio 中运行) 。

Visual Studio 在启动时不会以管理员身份运行。必须以提升的权限运行它才能对受保护的文件夹执行此类操作或访问端口,例如从 Visual Studio 运行 IE Express。


推荐阅读