قائمة الملفات الفعالة في الأدلة الكبيرة
يمكن أن يشكل التنقل بين الدلائل برمجيًا مع عدد كبير من الملفات تحديات في الأداء. للتغلب على هذه القيود، من الضروري فهم آليات قراءة الدليل الأساسية في Go.
تجنب Readdirnames
يعتمد النهج التقليدي لاستخدام filepath.Walk على ioutil. وظائف ReadDir وfilepath.Glob، والتي تقوم بإرجاع شرائح من الملفات. ومع ذلك، تعاني هذه الوظائف من قيود الذاكرة عند التعامل مع أدلة كبيرة جدًا.
بدلاً من استخدام ReadDirnames، الذي يعمل على صفائف مخزنة، فكر في أساليب Readdir أو Readdirnames ذات المستوى المنخفض مباشرة. تسمح هذه الطرق بتحديد حجم الدُفعة (n) أكبر من 0، مما يتيح استرجاع إدخالات الدليل على دفعات.
نموذج التعليمات البرمجية
مقتطف التعليمات البرمجية التالي يوضح كيفية قراءة إدخالات الدليل باستخدام Readdir:
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
files, err := ioutil.ReadDir("directory_path")
if err != nil {
fmt.Println(err)
return
}
for _, file := range files {
fmt.Println(file.Name())
}
}
من خلال تحديد حجم كافٍ للدُفعة (على سبيل المثال، 10000)، يمكنك معالجة قوائم الدليل الكبيرة بكفاءة دون مواجهة مشكلات في الذاكرة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3