كيفية الحصول على قائمة الملفات والمجلدات في دليل باستخدام Go؟ (ioutil.ReadDir مقابل os.ReadDir)
مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مهمة: قراءة محتويات مجلد وعرض قائمة بجميع الملفات والمجلدات الفرعية. بحثت في Google ووجدت عدة طرق، لكنني لا أستطيع فهم أي منها صحيح وحديث.
على سبيل المثال، جربت استخدام `ioutil.ReadDir`، لكن في التوثيق مكتوب أن هذه الحزمة deprecated (قديمة). ورأيت أيضاً `os.ReadDir` و `filepath.Walk`. لدي هذا الكود:
```go
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
files, err := ioutil.ReadDir(".")
if err != nil {
log.Fatal(err)
}
for _, f := range files {
fmt.Println(f.Name())
}
}
```
إنه يعمل، لكن IDE يضع خطاً تحت `ioutil` ويقول إنه قديم. كيف يمكنني الحصول على قائمة الملفات بشكل صحيح في Go 1.16+؟ هل أحتاج إلى ترتيب النتيجة؟ كيف أميز بين الملف والمجلد؟ وهل هناك فرق بين `os.ReadDir` و `ioutil.ReadDir` غير الاسم؟
أرجو إرشادي إلى أفضل الممارسات (best practices) لهذه المهمة.