C# 中如何删除所有文件和文件夹,同时保留根目录
问题:
如何在 C# 中删除特定目录下的所有文件和文件夹,同时保留根目录本身?
解决方案:
为此,您可以使用 C# 中的 System.IO.DirectoryInfo
类。以下是操作方法:
<code class="language-csharp">// 为目标目录创建一个 DirectoryInfo 对象 System.IO.DirectoryInfo di = new DirectoryInfo("YourPath"); // 遍历目录中的所有文件并删除它们 foreach (FileInfo file in di.GetFiles()) { file.Delete(); } // 遍历目录中的所有子目录并递归删除它们 foreach (DirectoryInfo dir in di.GetDirectories()) { dir.Delete(true); }</code>
优化:
如果目录包含大量文件,您可以使用 EnumerateFiles()
和 EnumerateDirectories()
代替 GetFiles()
和 GetDirectories()
。这可能更高效,因为它允许您在集合完全加载到内存之前开始枚举集合。
<code class="language-csharp">// 遍历目录中的所有文件并删除它们 foreach (FileInfo file in di.EnumerateFiles()) { file.Delete(); } // 遍历目录中的所有子目录并递归删除它们 foreach (DirectoryInfo dir in di.EnumerateDirectories()) { dir.Delete(true); }</code>
这种优化在处理大型目录时尤其有用,可以提高性能。请注意,对于这个问题,使用 GetFiles()
和 GetDirectories()
没有明显的优势。
以上是C# 如何删除目录中的所有文件和文件夹,同时保留目录本身?的详细内容。更多信息请关注PHP中文网其他相关文章!