-2

使用 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[]对象进行调试,它不会抓取从命令提示符中找到的不可见文件。

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

4

1 回答 1

3

尝试

Directory.Delete(parentFolderPath, true);
于 2013-01-04T21:50:04.523 回答