嘿伙计们,所以我正在开发一个小程序,它可以加速你的电脑,但我有一个问题,如果我试图删除文件,我会得到一个例外,我相信它们正在使用中。虽然它删除了一些,但并不多。我的问题是如何删除正在使用的文件,以及如何删除文件夹中的子文件夹
//this is my directory:
DirectoryInfo tempPath = new DirectoryInfo(@"C:\Users\" + Environment.UserName + @"\AppData\Local\Temp");
private void button8_Click(object sender, EventArgs e)
{
if (checkBox5.Checked)
{
//loop through these files
foreach (FileInfo file in tempPath.GetFiles())
{
//delete files in content
file.Delete();
}
}
}
答案 0 :(得分:0)
您必须使用set FileAttributes normal。
来递归删除文件夹private static void DeleteAllFolderRecursive(DirectoryInfo yourBaseDir)
{
baseDir.Attributes = FileAttributes.Normal;
foreach (var childDir in baseDir.GetDirectories())
DeleteFolderRecursive(childDir);
foreach (var file in baseDir.GetFiles())
file.IsReadOnly = false;
baseDir.Delete(true);
}
你称之为:
DirectoryInfo tempPath = new DirectoryInfo(@"C:\Users\" + Environment.UserName + @"\AppData\Local\Temp");
DeleteAllFolderRecursive(tempPath);