删除文件夹中的所有文件夹?

时间:2016-02-04 04:19:17

标签: c#

嘿伙计们,所以我正在开发一个小程序,它可以加速你的电脑,但我有一个问题,如果我试图删除文件,我会得到一个例外,我相信它们正在使用中。虽然它删除了一些,但并不多。我的问题是如何删除正在使用的文件,以及如何删除文件夹中的子文件夹

//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();
        }
    }
}

1 个答案:

答案 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);