ورود

View Full Version : سوال: بدست آوردن تعداد فایل در مسیر خاص



irprodesigner
جمعه 19 آبان 1391, 02:38 صبح
سلام من میخوام بدونم چطور میشه تعدا د فایلهای داخل یه پوشه رو بدست آورد.
با dir نتونستم.

SlowCode
جمعه 19 آبان 1391, 09:32 صبح
سلام با dir هم میتونی ولی راحت ترین راه استفاده از filelistbox و dirlistbox هست.
یکم جستجو کن پیدا میکنی، مطالب زیادی در موردش هست.

irprodesigner
جمعه 19 آبان 1391, 11:55 صبح
مرسی مشکل حل شد

irprodesigner
جمعه 19 آبان 1391, 12:03 عصر
حالا اگه بخوایم این فایلها با یه پسوند خاص باشه چه کنیم

SlowCode
جمعه 19 آبان 1391, 12:15 عصر
خب تو لیست فایل ها رو داری، پس توی یه حلقه میتونی فرمتشون رو بدست بیاری و چک کنی اگه فلان پسوند باشه به لیست اضافه کن. البته از توابع Api هم میتونی استفاده کنی ولی آسان ترین راه اینه.

irprodesigner
جمعه 19 آبان 1391, 12:19 عصر
میشه نموننه کدشو بنویسی من چند ساله وی بی کار نکردم توابع یادم نیست

SlowCode
جمعه 19 آبان 1391, 13:04 عصر
بله، اگه با FileListBox کار میکنی، از این کد استفاده کن:

For i = 0 To File1.ListCount
If LCase(Right(File1.List(i), 4)) = ".exe" Then List1.AddItem File1.List(i)
Next

irprodesigner
جمعه 19 آبان 1391, 13:23 عصر
خطا میده expected array

SlowCode
جمعه 19 آبان 1391, 13:32 عصر
بله توی حلقه File1.ListCount-1 رو جایگزین کن.

محسن واژدی
جمعه 19 آبان 1391, 13:34 عصر
سلام علیکم
اگر Pattern شی File-List را برابر "exe" قرار بدهیم (File-List را فیلتر کنیم تا تنها فایل های EXE لیست بشن) نتیجه زودتر برگشت داده شود:
Private Sub Command1_Click()
Dim i%
With File1
.Pattern = "*.exe"
For i = 0 To .ListCount-1
List1.AddItem .List(i)
Next
End With
End Sub

موفق باشید

irprodesigner
جمعه 19 آبان 1391, 13:37 عصر
همین کارو کردم بازم خطا میده

irprodesigner
جمعه 19 آبان 1391, 13:47 عصر
سلام علیکم
اگر Pattern شی File-List را برابر "exe" قرار بدهیم (File-List را فیلتر کنیم تا تنها فایل های EXE لیست بشن) نتیجه زودتر برگشت داده شود:
Private Sub Command1_Click()
Dim i%
With File1
.Pattern = "*.exe"
For i = 0 To .ListCount-1
List1.AddItem .List(i)
Next
End With
End Sub

موفق باشید

آقا محسن میشه توضیح بدی این کد هم لیستمو مرتب کرد هم فایل رو چطوری شد؟؟؟؟؟

irprodesigner
جمعه 19 آبان 1391, 13:50 عصر
LCase را به Left تغییر دهید

موفق باشید

بازم خطا میده

SlowCode
جمعه 19 آبان 1391, 13:51 عصر
بله، وقتی شما pattern رو تنظیم میکنی خودش فقط فایلهای exe رو لیست میکنه. ولی ایشون کدی برای مرتب شدن ننوشتن.
شما از کدی که من گذاشتم استفاده نکن.

محسن واژدی
جمعه 19 آبان 1391, 13:54 عصر
آقا محسن میشه توضیح بدی این کد هم لیستمو مرتب کرد هم فایل رو چطوری شد؟؟؟؟؟
بله، اگه خصیصه Pattern را بر روی exe کنیم تنها فایل های که پسوند exe دارند لیست میشوند، به عنوان مثال در مقدار زیر تنها فایل های jpg و png لیست میشن:
File1.Pattern = "*.jpg;*.png"

در مورد مرتب شدن، کنترل لیست را براساس حروف الفبا مرتب میکند

موفق باشید

محسن واژدی
جمعه 19 آبان 1391, 14:03 عصر
بازم خطا میده
چه خطایی میدهد؟ (متن خطا)

irprodesigner
جمعه 19 آبان 1391, 14:04 عصر
با تشکر از همگی

irprodesigner
جمعه 19 آبان 1391, 14:06 عصر
چه خطایی میدهد؟ (متن خطا)

expected array

محسن واژدی
جمعه 19 آبان 1391, 14:15 عصر
expected array
اگه هنوز مشکل برطرف نشده، ممکن است مشکل از کنترلها باشد، چک کنید ممکن است یکی از کنترلها آرایه باشد (کد آقای محسن15 هم مشکلی نداشت)

موفق باشید

SlowCode
جمعه 19 آبان 1391, 15:17 عصر
احتمال میدم که شما توی برنامتون از آرایه ای به نام i استفاده کردین، به همین دلیل برنامه خطا میگریه. پس توی حلقه به جای متغیر i از یه اسم دیگه استفاده کن.

With File1
.Pattern = "*.exe"
For z = 0 To .ListCount-1
List1.AddItem .List(z)
Next
End With