Es sind alles unbekannte Ordner... also immer anders.
Es wird auch wohl selten vorkommen, dass tausende unbekannte Dateiendungen vorhanden sind. Bekannte werden ja zwischengespeichert damit man nicht ständig SHGetFileInfo aufrufen muss. Weiß aber noch nicht genau wie ich es machen soll. Stringlist mit IndexOfName und ValueFromIndex (txt=Textdatei) fällt mir da ein. Aber das durchsuchen einer Stringliste sollte dann auch nicht langsam sein
da muss man noch mal schauen, was am schnellsten geht.
Aus der Registry lesen sollte man nur zur Not machen. Aber darin sehe ich eigentlich die einzige Lösung. Also alle bekannten Dateiendungen in einer Stringliste beim Programmstart zuordnen (txt=Textdatei, sys=Systemdatei usw) und SHGetFileInfo bräuchte man hierfür gar nicht mehr. Frag sich nur wie lange das dann dauern würde, die ganzen Infos aus der Registry zu lesen
Müsste man testen. Alles was dann nicht in der Stringliste gefunden wird, wird dann manuell gesetzt. Also ".abcd=abcd-Datei".