voici un petit code qui pourrait t'inspirer (listicongadget avec non de fichier et date) - code simple juste pour un dossier et ici
Code : Tout sélectionner
Structure SHFILEINFO_Ok ; la structure SHFILEINFO PB est fausse
hIcon.l
iIcon.l
dwAttributes.l
szDisplayName.b[#MAX_PATH]
szTypeName.b[80]
EndStructure
Structure LVITEM ; La structure LV_ITEM est incomplète
Mask.l
iItem.l
iSubItem.l
State.l
stateMask.l
pszText.l
cchTextMax.l
iImage.l
lParam.l
iIndent.l
iGroupId.l
cColumns.l
puColumns.l
EndStructure
#Date = "dd'/'MM'/'yyyy"
#Fichier_Courant = 100
If OpenWindow(0, 0, 0, 600, 400, #PB_Window_WindowCentered | #PB_Window_SystemMenu, "Mini Exploreur de fichiers")
If CreateGadgetList(WindowID())
IdListIcon = ListIconGadget(0, 10, 10, 580, 380, "Fichier", 575 / 3, #LVS_SHAREIMAGELISTS)
AddGadgetColumn(0, 1, "Type", 575 / 3)
AddGadgetColumn(0, 2, "Date", 575 / 3)
Dossier.s ="C:\" ; dossier à examiner
; Assign la listImage système à la listIcon
CurrentDirectory.s = Space(#MAX_PATH)
GetSystemDirectory_(CurrentDirectory, #MAX_PATH)
hImageListS.l = SHGetFileInfo_(CurrentDirectory, 0, @InfosFile.SHFILEINFO_Ok, SizeOf(SHFILEINFO_Ok), #SHGFI_SYSICONINDEX | #SHGFI_SMALLICON)
ImageList_SetBkColor_(hImageListS, #CLR_NONE)
SendMessage_(IdListIcon, #LVM_SETIMAGELIST, #LVSIL_SMALL, hImageListS)
NomFichier$ = Space(256)
FileInfos.WIN32_FIND_DATA ; filetime
String1.s = Space(256) : FileDateTime.s = String1
If ExamineDirectory(0, Dossier, "*.*")
Repeat
Type = NextDirectoryEntry()
If Type
NomFichier$ = DirectoryEntryName()
; on récupère les infos sur l'icône et sur la description du fichier
SHGetFileInfo_(Dossier + NomFichier$, 0, @InfosFile, SizeOf(SHFILEINFO_Ok), #SHGFI_SYSICONINDEX | #SHGFI_SMALLICON | #SHGFI_TYPENAME)
; on affiche le 1er élément dans la listicongadget, soit le fichier + l'icône
VarList.LVITEM\Mask = #LVIF_TEXT | #LVIF_IMAGE ; ; mask défini le type de données | #LVIF_PARAM
VarList\iImage = InfosFile\iIcon ; l'index de l'icon dans la liste système
VarList\pszText = @NomFichier$ ; la chaîne à afficher
VarList\iSubItem = 0 ; indique que c'est le premier élément et pas un sous-élément
; on envoie le message pour afficher le premier élément
SendMessage_(IdListIcon, #LVM_INSERTITEM, 0, @VarList)
; on envoie le message pour afficher le deuxième élément
VarList\Mask = #LVIF_TEXT
VarList\pszText = @InfosFile\szTypeName[0] ; la chaîne à afficher
VarList\iSubItem = 1 ; indique que c'est le deuxième
; on envoie le message
SendMessage_(IdListIcon, #LVM_SETITEM, 0, @VarList)
; on récupère la date du fichier
ID = OpenFile(#Fichier_Courant, Dossier+NomFichier$)
If ID
GetFileTime_(ID, lpCreationTime.FILETIME, lpLastAccessTime.FILETIME, lpLastWriteTime.FILETIME)
CloseFile(#Fichier_Courant)
FileTimeToLocalFileTime_(lpLastWriteTime, @OutPut.l)
FileTimeToSystemTime_(@OutPut, @OutPutSystemTime.SYSTEMTIME)
GetDateFormat_(2048, 0, @OutPutSystemTime, #Date, @String1, 254)
GetTimeFormat_(2048, #TIME_FORCE24HOURFORMAT, @OutPutSystemTime, 0, @FileDateTime.s, 254)
String1 + " " + FileDateTime
VarList\iSubItem = 2; colonne 3
VarList\pszText = @String1
SendMessage_(IdListIcon, #LVM_SETITEM, 0, @VarList)
EndIf
EndIf
Until Type = 0
EndIf
EndIf
Repeat
Until WaitWindowEvent() = #PB_EventCloseWindow
EndIf
End