Private Declare Function SetFileAttributes Lib "kernel32" Alias _ "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As _ Long) As Long' Associate an icon to a folder, by creating a desktop.ini file into it.' Within Explorer the specified icon will be displayed instead of the standard ' folder icon' Parameters:' sFolderPath: path of the folder to associate the icon to' sIconFile: icon file to associate. This can be a .ico, .exe or .dll file' iIconIndex: index of the icon in case the specified file contains more than ' one icon (such as shell32.dll)'' Example:' SetFolderIcon "C:NiceFolder", "C:DocumentsTestIcon.ico"Sub SetFolderIcon(ByVal sFolderPath As String, ByVal sIconFile As String, _ Optional ByVal iIconIndex As Long = 0) Dim sContent As String Dim sDesktopFile As String Dim bExists As Boolean Dim handle As Integer On Error Resume Next ' test whether both the folder and the icon file exist bExists = (GetAttr(sFolderPath) And vbDirectory) <> 0 And (GetAttr _ (sIconFile) And vbDirectory) = 0 If bExists = False Or Err.Number <> 0 Then Exit Sub ' build the file content sContent = "[.ShellClassInfo]" & vbCrLf & "IconIndex=" & iIconIndex & _ vbCrLf & "IconFile=" & sIconFile 'make the path for the desktop.ini file sDesktopFile = sFolderPath & IIf(Right$(sFolderPath, 1) = "", "", _ "") & "desktop.ini" ' open the file and write the content handle = FreeFile Open sDesktopFile For Output As #handle Print #handle, sContent; Close #handle ' make the file hidden and the folder read only SetFileAttributes sDesktopFile, vbHidden SetFileAttributes sFolderPath, vbReadOnly End Sub