كيفية حذف جميع الملفات والمجلدات في دليل بلغة C#؟
```html
مرحباً بالجميع! أنا مطور C# مبتدئ وواجهت مشكلة كهذه. أحتاج إلى كتابة دالة تقوم بتنظيف مجلد من جميع الملفات والمجلدات الفرعية. جربت عدة طرق، لكن في كل مرة يحدث خطأ ما.
هذا هو الكود الخاص بي:
```csharp
string path = @"C:\Temp\MyFolder";
if (Directory.Exists(path))
{
Directory.Delete(path, true);
Directory.CreateDirectory(path);
}
```
المشكلة هي أنه عند محاولة حذف مجلد يحتوي على ملفات يستخدمها عملية أخرى، يظهر استثناء IOException. وإذا حاولت حذف الملفات واحداً تلو الآخر باستخدام File.Delete، تبقى المجلدات ويجب حذفها بشكل متكرر، لكنني لا أستطيع فهم التداخل.
كما جربت هذا الخيار:
```csharp
foreach (string file in Directory.GetFiles(path))
{
File.Delete(file);
}
foreach (string dir in Directory.GetDirectories(path))
{
Directory.Delete(dir, true);
}
```
لكن إذا كان هناك مجلدات فرعية تحتوي على ملفات في المجلد، فإن Directory.GetDirectories لا يعيدها،
```