[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Для удаления всех файлов из папки, можно воспользоваться классами DirectoryInfo и FileInfo:
1 2 3 4 5 6 7 8 9 10 |
DirectoryInfo di = new DirectoryInfo("YourPath"); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } foreach (DirectoryInfo dir in di.GetDirectories()) { dir.Delete(true); } |
Если в вашем каталоге может быть много файлов, EnumerateFiles() более эффективна, чем GetFiles(), потому что при использовании EnumerateFiles() вы можете начать перечисление до того, как будет возвращена вся коллекция, в отличие от GetFiles(), где вам нужно загрузить всю коллекцию в память, прежде чем начать ее перечисление.
То же самое относится к EnumerateDirectories() и GetDirectories(). Таким образом, код будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 |
DirectoryInfo di = new DirectoryInfo("YourPath"); foreach (FileInfo file in di.EnumerateFiles()) { file.Delete(); } foreach (DirectoryInfo dir in di.EnumerateDirectories()) { dir.Delete(true); } |
Так же, поиск и удаление файлов можно реализовать через рекурсивные вызовы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
private void RemoveFilesFromFolder(string FolderName) { DirectoryInfo dir = new DirectoryInfo(FolderName); foreach (FileInfo fi in dir.GetFiles()) { fi.Delete(); } foreach (DirectoryInfo di in dir.GetDirectories()) { RemoveFilesFromFolder(di.FullName); di.Delete(); } } |
Если у вас есть полные права на папку и требуется полное удаление файлов внутри нее, как альтернатива, можно удалить всю папку и заново ее создать:
1 2 3 4 5 |
private void ReCreateFolder(string path) { Directory.Delete(path, true); Directory.CreateDirectory(path); } |