ذخیره نام فایل های داخل یک پوشه در list - ویژوال بیسیک

S.H.M

New Member
آیا میشه برنامه ای نوشت که با دادن یک آدرس پوشه به اون تمام اسم فایل های داخل پوشه رو در list1 نمایش بده

من وقتی از دستور dir استفاده می کنم فقط اسم فایل اول (از نظر حروف الفبا) رو ذخیره می کنه
 

the_king

مدیرکل انجمن
آیا میشه برنامه ای نوشت که با دادن یک آدرس پوشه به اون تمام اسم فایل های داخل پوشه رو در list1 نمایش بده

من وقتی از دستور dir استفاده می کنم فقط اسم فایل اول (از نظر حروف الفبا) رو ذخیره می کنه

تابع Dir یک تابع خاص است، بایستی بار اول آنرا با پارامتر های ورودی فراخوانی کنید تا جستجو را آغاز کند و در دفعات بعدی
بدون پارامتر ورودی فراخوانی اش کنید تا جستجوی قبلی را ادامه دهد وگرنه مجددا از ابتدا جستجو خواهد کرد.
جستجو زمانی پایان یافته که رشته تهی ("") توسط این تابع برگردانده شود.

روتین زیر (DirPath) یک مسیر جستجو مانند (*.*\:C) و یک ListBox مانند List1 را به عنوان پارامتر ورودی دریافت کرده و
لیست فایلهای درون آن مسیر (اعم از فایل های مخفی (Hidden)، فایل های سیستمی (System) و
فقط خواندنی (Read Only) را در ListBox مور نظر قرار می دهد :

کد:
Private Sub [B]DirPath[/B](ByVal Path As String, ByRef List As ListBox)
    Dim FileName As String
    With List
        .Clear
        FileName = Dir(Path, vbArchive Or vbHidden Or vbReadOnly Or vbSystem)
        Do While Len(FileName) > 0
            .AddItem FileName
            FileName = Dir
            DoEvents
        Loop
    End With
End Sub

دقت کنید که شرط ادامه یافتن حلقه Do While بیشتر بودن طول رشته FileName از 0 است، یعنی تا زمانی که رشته تهی نباشد.
همچنین در داخل حلقه از تابع Dir به شکل FileName = Dir استفاده شده، یعنی بدون پارامتر ورودی.
از DoEvents استفاده گردید تا اگر تعداد فایل ها زیاد باشد و یا سیستم فایل ها کند عمل نماید، تاخیر در نمایش لیست موجب
قفل کردن برنامه نشود. هر زمانی که از فرمان DoEvents استفاده می کنید، عملیات به تاخیر افتاده مانند بررسی کلیک ماوس یا
نمایش محتویات ListBox به طور کامل انجام می شوند.

و یک مثال از نحوه بکارگیری این روتین :
کد:
    DirPath "C:\*.*", List1
 

جدیدترین ارسال ها

بالا