Talvolta quando si creano degli applicativi che devono lavorare in background senza l’intervento dell’utente, è bene prevedere qualsiasi anomalia senza però segnalare con un alert (magari su un server) la situazione anomala e comunque senza mandare in crash l’intera applicazione per una condizione non verificatasi.
Tempo addietro mi capitò sviluppando una procedura batch che un sistema generava dei files e che questi dovevano essere trasferiti in una cartella condivisa sul server per cui mi serviva un metodo per capire se effettivamente tale cartella era condivisa o meno.
Il codice che segue mi ha aiutato nella risoluzione del problema:
Type SHFILEINFO hIcon As Long iIcon As Long dwAttributes As Long szDisplayName As String * MAX_PATH szTypeName As String * 80 End Type Public Const SHGFI_ATTRIBUTES = &H800 Public Const SFGAO_SHARE = &H20000 Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" _ (ByVal pszPath As String, ByVal swFileAttributes As Long, _ psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long Public Function IsSharedThisFolder(ByVal Path As String) As Boolean Dim sfi As SHFILEINFO SHGetFileInfo Path, 0, sfi, Len(sfi), SHGFI_ATTRIBUTES IsSharedThisFolder=(sfi.dwAttributes And SFGAO_SHARE) End Function