无法删除包含不可见文件的文件夹

时间:2013-01-04 21:48:57

标签: c# fileinfo directoryinfo

使用Visual Studio 2010 C#。我正在尝试删除C:/Windows/MyFolderA中的文件夹,其中MyFolderA是我的软件放置在那里的文件夹 - 不是微软的。

我已使用此代码删除文件夹内容和文件夹本身:

foreach (FileInfo tempfi in listOfMSIInstallers)
{
    //Delete all Files
    DirectoryInfo localDirectoryInfo = new DirectoryInfo(targetDirectory);
    FileInfo[] listOfMSIInstallers = localDirectoryInfo.GetFiles("*",SearchOption.AllDirectories);
    File.SetAttributes(tempfi.FullName, File.GetAttributes(tempfi.FullName) & ~FileAttributes.ReadOnly); //Remove Read-Only
    File.Delete(tempfi.FullName); //Delete File

    string parentFolderPath = "C:/Windows/MyFolderA"; //Example string for StackOverflow

    //Remove ReadOnly attribute and delete folder
    var di = new DirectoryInfo(parentFolderPath);
    di.Attributes &= ~FileAttributes.ReadOnly;
    Directory.Delete(parentFolderPath);
}

如果我尝试删除该文件夹,我会收到异常

  

“System.IO.IOException:目录不为空”。

在我的GUI上显示不可见文件我看不到任何文件。使用命令提示符查看该文件夹,似乎有2个目录:1个名为。和第二个命名..(不太熟悉命令提示符目录,所以我不知道它们是临时名称还是那些是实际的目录名称),无论是0文件还是0字节。

通过查看FileInfo[]对象进行调试,它不会获取从命令提示符中找到的不可见文件。

我有什么想法可以删除文件/目录吗?

1 个答案:

答案 0 :(得分:3)

尝试

Directory.Delete(parentFolderPath, true);