Avatar ·

كيفية الحصول على قائمة الملفات والمجلدات في دليل باستخدام Go: دليل كامل

مرحباً بالجميع! أنا مبتدئ في Go وأحاول حل مشكلة بسيطة: أحتاج إلى الحصول على قائمة بجميع الملفات والمجلدات الفرعية في دليل معين. جربت استخدام الدالة `ioutil.ReadDir` لكنها مُعلَمة بأنها قديمة (deprecated). ثم صادفت `os.ReadDir` لكنني لم أفهم تماماً كيفية التعامل معها. إليك ما جربته: ```go package main import ( "fmt" "io/ioutil" ) func main() { files, err := ioutil.ReadDir(".") if err != nil { fmt.Println("خطأ:", err) return } for _, f := range files { fmt.Println(f.Name()) } } ``` الكود يُترجم، لكن IDE يضع خطاً تحت `ioutil.ReadDir` ويقول إنه deprecated. أريد استخدام نهج حديث. بالإضافة إلى ذلك، أحتاج إلى: 1. الحصول على الملفات فقط (بدون المجلدات). 2. الحصول على المجلدات فقط. 3. اجتياز جميع المجلدات الفرعية بشكل متكرر (recursively). 4. التصفية حسب الامتداد (مثل ملفات `.go` فقط). أرشدوني كيف أفعل ذلك بشكل صحيح في Go؟ يُفضل مع أمثلة. شكراً مسبقاً!