PDA

View Full Version : سوال: مشکل با جست و جو فایل (مهم)



saeedvir
پنج شنبه 29 بهمن 1388, 14:57 عصر
سلام دوستان

من می خواهم که با تابع SearchTreeForFile چند تا فایل را جستوجو کنم ولی به مشکل بر خوردم ،

من می خواهم که تمام آیتم های یک لیست باکس را در یک مسیر مثلا

c:\test\جست و جو کنم - و فایل های پیدا شده را در یک لیست باکس دیگه وارد کنم (Add کنم)
ولی فقط یکی از فایل های پیدا شده را به لیست باکس دوم اضافه می کنه

اینم سورس :
Private Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long
Private Const MAX_PATH = 260

Private Sub form_load()
List1.AddItem "a.exe"
List1.AddItem "b.exe"
List1.AddItem "c.exe"
List1.AddItem "d.exe"
List1.AddItem "e.exe"
List1.AddItem "f.exe"
List1.AddItem "g.exe"
End Sub
Private Sub Command1_Click()
Dim TempStr As String
Dim Result As Long
Dim i As Integer
TempStr = String(MAX_PATH, 0)
'==============================
For i = 0 To List1.ListCount - 1
Result = SearchTreeForFile("c:\test\", List1.List(i), TempStr)
DoEvents
Next
List2.AddItem Left$(TempStr, InStr(1, TempStr, Chr$(0)) - 1)
End Sub
در ضمن سورس را آپلود هم کردم

دوستان لطف کنید کمک کنید:تشویق::ناراحت::خجالت::ل خند:

ablofazlkianianboohi
جمعه 30 بهمن 1388, 12:22 عصر
یکم سوال را واضح کنید.

xxxxx_xxxxx
جمعه 30 بهمن 1388, 13:15 عصر
سلام،
به دو خط آخر دستورات دقت کنید! دستور اضافه کردن آیتم به لیست باکس خارج از حلقه هست!!!
Next رو بیارید پایین تر. بعد از AddItem
برای اینکه نتیجه جستجو بهتر بشه و اگر فایلی پیدا نشد چیزی هم به لیست اضافه نشه کافی هست مقدار متغیر Result رو بعد از جستجو چک کنید. اگر 1 بود یعنی فایل پیدا شده و اگر 0 بود پیدا نشده. پس فقط اگر 1 بود به لیست اضافه شه.

موفق باشید/