Má adresář podadresáře ?

Funkce:
Private Const MAX_PATH = 260

Private Type SHFILEINFO
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
End Type

Private Declare Function SHGetFileInfo Lib "Shell32" Alias _
    "SHGetFileInfoA" (ByVal pszPath As Any, _
    ByVal dwFileAttributes As Long, psfi As SHFILEINFO, _
    ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long

'Vrací True, pokud specifikovaný adresář má alespoň jeden podadresář
Function FolderHasSubFolders(ByVal sPath As String) As Boolean

    Const SFGAO_HASSUBFOLDER = &H80000000
    Const SHGFI_ATTRIBUTES = &H800
    
    Dim FInfo As SHFILEINFO

    ' Zjištění atributů adresáře
    SHGetFileInfo sPath, 0, FInfo, Len(FInfo), SHGFI_ATTRIBUTES
    ' Test existence atributu HASSUBFOLDER
    FolderHasSubFolders = (FInfo.dwAttributes And SFGAO_HASSUBFOLDER) 

End Function

Zpět

Autor: The Bozena