"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ## كيف تُدرج الملفات في المجلدات الكبيرة بكفاءة باستخدام Go؟

## كيف تُدرج الملفات في المجلدات الكبيرة بكفاءة باستخدام Go؟

تم النشر بتاريخ 2024-11-08
تصفح:968

## How to Efficiently List Files in Large Directories with Go?

قائمة الملفات الفعالة في الأدلة الكبيرة

يمكن أن يشكل التنقل بين الدلائل برمجيًا مع عدد كبير من الملفات تحديات في الأداء. للتغلب على هذه القيود، من الضروري فهم آليات قراءة الدليل الأساسية في 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