كيفية الحصول على قائمة الملفات والمجلدات في دليل باستخدام 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؟ يُفضل مع أمثلة. شكراً مسبقاً!