[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на 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); } |