PDA

View Full Version : folder view



ali-se
سه شنبه 18 اسفند 1394, 03:43 صبح
سلام

دوستان من یه برنامه کوچیک دارم که داخل آن نیاز هست کاربر یه فولدر رو انتخاب کنه و برنامه لیست فایل های درون اونه استخراج کنه
یه تابع به شکل زیر تو اینترنت پیدا کردم ، ولی یه مشکل داره وقتی پنجره انتخاب فولدرباز میشه ، Shortcut ها رو نشون نمیده!
و تو مسیرهای طولانی داخل شبکه این قضیه خیلی اذیت می کنه.
میشه راهنمایی بفرمائید.



Private Type BrowseInfo
hOwner As Long
pIDLRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type


Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias
"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
"SHBrowseForFolderA" (lpBrowseInfo As BrowseInfo) _
As Long


Private Const BIF_RETURNONLYFSDIRS = &H1
'------------------------------------------------------------------------------------------------------------
Public Function BrowseFolder(szDialogTitle As String) As String
Dim X As Long, bi As BrowseInfo, dwIList As Long
Dim szPath As String, wPos As Integer

With bi
.hOwner = hWndAccessApp
.lpszTitle = szDialogTitle
' .ulFlags = BIF_RETURNONLYFSDIRS
.ulFlags = BIF_RETURNALL
End With

dwIList = SHBrowseForFolder(bi)
szPath = Space$(512)
X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)

If X Then
wPos = InStr(szPath, Chr(0))
BrowseFolder = Left$(szPath, wPos - 1)
Else
BrowseFolder = vbNullString
End If

End Function
'*********** Code End ***********
ممنون

Fery666
یک شنبه 12 اردیبهشت 1395, 18:23 عصر
با این کد ببینید مشکلتون حل میشه :



Private Function SearchFile(Spath As String, Stype As String, SResult As ListBox)
Path = Dir(Spath & "\" & Stype)
Do While (Path <> "")
SResult.AddItem Path
Path = Dir
Loop
End Function

Private Sub Command1_Click()
Call SearchFile("C:\", "*.*", List1)
End Sub



فایل های Shortcut رو هم نشون میده