使用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[]
对象进行调试,它不会获取从命令提示符中找到的不可见文件。
我有什么想法可以删除文件/目录吗?
答案 0 :(得分:3)
尝试
Directory.Delete(parentFolderPath, true);