PDA

View Full Version : یک تابع برای لیست فایلها



navid_gh
شنبه 27 آبان 1385, 00:33 صبح
سلام به همگی
می خواستم بدونم چطوری می تونم لیست فایل های داخل یک فولدر رو در Listbox داشته باشم
یا در File1 داشته باشم

ممنون می شم اگه بگید

navid_gh
شنبه 27 آبان 1385, 15:28 عصر
بابا کسی نیست جواب بده؟

navid_gh
یک شنبه 28 آبان 1385, 19:53 عصر
خداییش کسی نیست جواب منو بده؟

mortez maya
یک شنبه 28 آبان 1385, 21:54 عصر
از Drive و Dir هم استفاده می کنی یا نه؟ (فرق میکنه)

navid_gh
دوشنبه 29 آبان 1385, 00:57 صبح
نه عزیز از اونا نمی خوام استفاده کنم
من می خوام توی یه جایی مهم نیست کجا حتی با دستور پرینت
می خوام کلا محتویات یک فولدرم رو که خودم آدرس می دم نشون بده؟

Erfanian
دوشنبه 29 آبان 1385, 08:19 صبح
با سلام
ابتدا رفرنس زیر را به پروژه VB خود اضافه کنید:
Microsoft Scripting Runtime
حال می‌توانید چنین عمل کنید:
یک Listbox‌ به نام List1‌و
یک Button به نام cmdStart‌داریم:
Private Sub cmdstart_Click()
Dim nDirs As Integer, nFiles As Integer, lSize As Long
Dim sDir As String
Dim fs, d, dc, s, n, DrvType, Status

Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d In dc
DrvType = 0
Status = False
ShowDriveInfo d.DriveLetter, DrvType, Status
If (DrvType = 2 Or DrvType = 3) And Status Then
sDir = d.DriveLetter + ":\"
Label1.Caption = "Searching for AutoCAD" & vbCrLf & UCase(sDir) & "..."
lSize = FindFile(sDir, "*.*", nDirs, nFiles)
End If
Next
End Sub

'بقیه توابع لازم
Sub ShowDriveInfo(drvpath, DrvType, Status)
Dim fs, d, s, t
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(drvpath)
' Select Case d.DriveType
' Case 0: t = "Unknown"
' Case 1: t = "Removable"
' Case 2: t = "Fixed"
' Case 3: t = "Network"
' Case 4: t = "CD-ROM"
' Case 5: t = "RAM Disk"
' End Select
DrvType = d.DriveType
' s = "Drive " & d.DriveLetter & ": - " & t
Status = d.IsReady
' If d.IsReady Then
' s = s & vbCrLf & "Drive is Ready."
' Else
' s = s & vbCrLf & "Drive is not Ready."
' End If
' MsgBox s
End Sub

Private Function FindFile(ByVal sFol As String, sFile As String, _
nDirs As Integer, nFiles As Integer) As Long
On Error Resume Next
Dim tFld As Folder, tFil As File, FileName As String

Set fld = fso.GetFolder(sFol)
FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly)
While Len(FileName) <> 0
FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, _
FileName))
nFiles = nFiles + 1
List1.AddItem fld.Path
FileName = Dir() ' Get next file
DoEvents
Wend

nDirs = nDirs + 1
If fld.SubFolders.Count > 0 Then
For Each tFld In fld.SubFolders
DoEvents
FindFile = FindFile + FindFile(tFld.Path, sFile, nDirs, _
nFiles)
Next
End If
End Function


در قسمت Declaration فرم
Option Explicit
Dim fso As New FileSystemObject
Dim fld As Folder

amirhosein
دوشنبه 29 آبان 1385, 12:19 عصر
از تابع dir() برای بدست آوردن لیست فایلهای یک مسیر استفاده کن. یه نمونه قبلاً کار کرده بودم که برات میذارم . البته از اینترنت می تونی بهترشم گیر بیاری . موفق باشی .

navid_gh
دوشنبه 29 آبان 1385, 16:14 عصر
آقای Erfanian بابت برنامه دست درد نکنه خیلی بدردم خورد
ویلی این اونی نبود که من می خواستم من نمی خوام سرپ کنه و فقط می خوام بگم که در لیست باکس
مثلا من دادم C:\Navid\Picture در این فلدر مثلا فایل هایی از Navid.jpg هست تا Navid99.jpg می خوام این 100 عکس رو اسمشون رو توی یه لیست باکس که فقط برای دیدن باشه نشون بده
ولی از بابت برنامه دستدرد نکنه برای یه کار دیگم خیلی بدرد خورد
از آقای amirhosein برای برنامش ممنونم ولی هنگام اجرا ارور می ده و دیباگ می خواد
یکی کمکم کنه این برنامه رو خیلی لازم دارم
آقای Erfanian اگه میشه این برنامه ای که گفتم رو بهم بدید
خیلی ممنون میشم!!!!!!!!!

navid_gh
سه شنبه 30 آبان 1385, 00:10 صبح
بابا چرا اینقدر دیر جواب می دید؟

Erfanian
سه شنبه 30 آبان 1385, 09:32 صبح
با سلام
در جائیکه من *.* گذاشته‌ام می‌توانید هر مسیر و فایل دلخواهی را بگذارید و برای هر کدام که پیدا شد آنرا به لیست باکس، تکست باکس یا هر مورد دلخواهی اضافه کنید....

Hossein Bazyan
سه شنبه 30 آبان 1385, 11:56 صبح
ببین این به دردت میخوره

amirhosein
سه شنبه 30 آبان 1385, 13:32 عصر
از آقای amirhosein برای برنامش ممنونم ولی هنگام اجرا ارور می ده و دیباگ می خواد
من دوباره تست کردم مشکلی نداشت ولی محض اطمینان سورسشو به صورت فایل متنی به همراه اینترفیس می ذارم خودتون کنترلهاشو اضافه کنید .
در ضمن برنامه آقای بازیان خیلی ساده و کارآمدتره

navid_gh
چهارشنبه 01 آذر 1385, 14:25 عصر
از همه دوستان برای کمک کردنشون ممنون
واقعا با مرامید
قربون همتون
کارم راه افتاد با این کدها