Avatar ·

كيفية الحصول على قائمة الملفات والمجلدات في دليل باستخدام 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) لهذه المهمة.