使用C#,如何删除目录中的所有文件和文件夹,但仍然保留根目录?


当前回答

System.IO.Directory.Delete(installPath, true);
System.IO.Directory.CreateDirectory(installPath);

其他回答

 new System.IO.DirectoryInfo(@"C:\Temp").Delete(true);

 //Or

 System.IO.Directory.Delete(@"C:\Temp", true);
System.IO.Directory.Delete(installPath, true);
System.IO.Directory.CreateDirectory(installPath);

使用DirectoryInfo的GetDirectories方法。

foreach (DirectoryInfo subDir in new DirectoryInfo(targetDir).GetDirectories())
                    subDir.Delete(true);

以下代码将清理目录,但将根目录保留在那里(递归)。

Action<string> DelPath = null;
DelPath = p =>
{
    Directory.EnumerateFiles(p).ToList().ForEach(File.Delete);
    Directory.EnumerateDirectories(p).ToList().ForEach(DelPath);
    Directory.EnumerateDirectories(p).ToList().ForEach(Directory.Delete);
};
DelPath(path);
using System.IO;

string[] filePaths = Directory.GetFiles(@"c:\MyDir\");

foreach (string filePath in filePaths)

File.Delete(filePath);