用Dir函数查找目录下的文件,(具体的参阅MSDN关于Dir的解释)显示图标用一个API函数该函数声明为: Public Const MAX_PATH = 260 Public Const SHGFI_DISPLAYNAME = &H200 Public Const SHGFI_EXETYPE = &H2000 Public Const SHGFI_SYSICONINDEX = &H4000 ' System icon index Public Const SHGFI_LARGEICON = &H0 ' Large icon Public Const SHGFI_SMALLICON = &H1 ' Small icon Public Const ILD_TRANSPARENT = &H1 ' Display transparent Public Const SHGFI_SHELLICONSIZE = &H4 Public Const SHGFI_TYPENAME = &H400 Public Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME _ Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX _ Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPEPublic Type SHFILEINFO hIcon As Long iIcon As Long dwAttributes As Long szDisplayName As String * MAX_PATH szTypeName As String * 80 End TypePublic Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" _ (ByVal pszPath As String, _ ByVal dwFileAttributes As Long, _ psfi As SHFILEINFO, _ ByVal cbSizeFileInfo As Long, _ ByVal uFlags As Long) As LongPublic Declare Function ImageList_Draw Lib "comctl32.dll" _ (ByVal himl&, ByVal i&, ByVal hDCDest&, _ ByVal x&, ByVal y&, ByVal flags&) As LongPublic shinfo As SHFILEINFO使用方法:(放置一个Listview及ImageList 还有二个PictureBox) Dim hImgSmall As Long ' The handle to the system image list Dim FileName As String ' The file name to get icon from Dim r As Long FileName$ = txtFileName.Text
' Get the system icons associated with the file hImgSmall& = SHGetFileInfo(FileName$, 0&, shinfo, Len(shinfo), _ BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON) hImgLarge& = SHGetFileInfo(FileName$, 0&, shinfo, Len(shinfo), _ BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
' Set the pictureboxes to receive the icons. picSmall.Picture = LoadPicture() picLarge.Picture = LoadPicture()
' Draw the associated icons into the picture boxes r& = ImageList_Draw(hImgSmall&, shinfo.iIcon, picSmall.hDC, 0, 0, ILD_TRANSPARENT) r& = ImageList_Draw(hImgLarge&, shinfo.iIcon, picLarge.hDC, 0, 0, ILD_TRANSPARENT)
Public Const MAX_PATH = 260
Public Const SHGFI_DISPLAYNAME = &H200
Public Const SHGFI_EXETYPE = &H2000
Public Const SHGFI_SYSICONINDEX = &H4000 ' System icon index
Public Const SHGFI_LARGEICON = &H0 ' Large icon
Public Const SHGFI_SMALLICON = &H1 ' Small icon
Public Const ILD_TRANSPARENT = &H1 ' Display transparent
Public Const SHGFI_SHELLICONSIZE = &H4
Public Const SHGFI_TYPENAME = &H400
Public Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME _
Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX _
Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPEPublic Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End TypePublic Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" _
(ByVal pszPath As String, _
ByVal dwFileAttributes As Long, _
psfi As SHFILEINFO, _
ByVal cbSizeFileInfo As Long, _
ByVal uFlags As Long) As LongPublic Declare Function ImageList_Draw Lib "comctl32.dll" _
(ByVal himl&, ByVal i&, ByVal hDCDest&, _
ByVal x&, ByVal y&, ByVal flags&) As LongPublic shinfo As SHFILEINFO使用方法:(放置一个Listview及ImageList 还有二个PictureBox)
Dim hImgSmall As Long ' The handle to the system image list
Dim FileName As String ' The file name to get icon from
Dim r As Long FileName$ = txtFileName.Text
' Get the system icons associated with the file
hImgSmall& = SHGetFileInfo(FileName$, 0&, shinfo, Len(shinfo), _
BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON) hImgLarge& = SHGetFileInfo(FileName$, 0&, shinfo, Len(shinfo), _
BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
' Set the pictureboxes to receive the icons.
picSmall.Picture = LoadPicture() picLarge.Picture = LoadPicture()
' Draw the associated icons into the picture boxes
r& = ImageList_Draw(hImgSmall&, shinfo.iIcon, picSmall.hDC, 0, 0, ILD_TRANSPARENT)
r& = ImageList_Draw(hImgLarge&, shinfo.iIcon, picLarge.hDC, 0, 0, ILD_TRANSPARENT)
ImageList1.ListImages.Add , , picLarge.Image
ListView1.ListItems.Add , , ImageList1.ListImages.Count, ImageList1.ListImages.Count
Dim MyFile, MyPath, MyName' 返回“WIN.INI” (如果该文件存在)。
MyFile = Dir("C:\WINDOWS\WIN.ini") ' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
' 函数将返回按条件第一个找到的文件名。
MyFile = Dir("C:\WINDOWS\*.ini")' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
MyFile = Dir' 返回找到的第一个隐式 *.TXT 文件。
MyFile = Dir("*.TXT", vbHidden)' 显示 C:\ 目录下的名称。
MyPath = "c:\" ' 指定路径。
MyName = Dir(MyPath, vbDirectory) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一个目录,将其名称显示出来。
End If
End If
MyName = Dir ' 查找下一个目录。
Loop