删除文件夹(c#)
删除文件夹(c#)
这个功能是简单的文件操作的一部分,本来以为很是简单,但后来发现如果文件夹内有文件,运行则会报错:目录已存在!
起初的想法很简单 ,先删除原文件夹,然后再创建一个同名的空文件夹。
System.IO.Directory.Delete(txtAimDirectory.Text);
System.IO.Directory.CreateDirectory(txtAimDirectory.Text);
后来查看一些资料,知道文件夹中可能含有文件夹、文件,如何清空呢?
直接贴上代码:(用到梯归)
private void DeleteFolder(string dir)
{
// 循环文件夹里面的内容
foreach (string f in Directory.GetFileSystemEntries(dir))
{
// 如果是文件存在
if (File.Exists(f))
{
FileInfo fi = new FileInfo(f);
if (fi.Attributes.ToString().IndexOf("Readonly") != 1)
{
fi.Attributes = FileAttributes.Normal;
}
// 直接删除其中的文件
File.Delete(f);
}
else
{
// 如果是文件夹存在
// 递归删除子文件夹
DeleteFolder(f);
}
}
// 删除已空文件夹
Directory.Delete(dir);
}