루트 디렉토리를 유지하면서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!