Verzeichnis auslesen klappt nicht...
-
Hi,
ich hab in der FAQ das hier gefunden :
Verzeichnis auslesenAllerdings findet mein Rechner nur das FirstFile und das ist auch noch Mist. Beim ersten FindNextFile kommt nix bei raus, obwohl Dateien drin sind im Verzeichnis..
Kann mir wer sagen, was ich da falsch mache? hab den Code prinzipiell kopiert...Hab meinen Fehler gefunden, weiß abern icht genau, wie ich denk korrigiere. Das Problem ist, dass ich keinen Pfad gesetzt habe unter dem der Rechner suchen soll... kann mir da wer sagen, wo der drin stehen muss??
-
// Erste Datei im Verzeichnis "c:\windows\desktop\" holen:
// aufgrund von "alten Zeiten" ist das erste immer ein "."
// kann also ignoriert werden.
fHandle=FindFirstFile("c:\\windows\\desktop\*",&wfd);na hier steht der pfad
-
toll..
jetzt glaub ich, ich habs grade, da schmieren mir die Common controls ab
Kann mir einer sagen, warum die jetzt plötzlich beim InitComonControls() nen segmentationfault haben??
-
hat aber nix mehr mit dem verzeichniss lesen zu tun.

DocJunioR schrieb:
jetzt glaub ich, ich habs grade, da schmieren mir die Common controls ab

kann mir kaum vorstellen das sowas geht, denn dann müssten alle progs die so ein ctrl benutzen nicht mehr gehen.
DocJunioR schrieb:
Kann mir einer sagen, warum die jetzt plötzlich beim InitComonControls() nen segmentationfault haben??
irgendwo will deine anwendung auf schon bestehenden speicher zurückgreifen, schreib doch mal ein minimal prog(nur winmain + initcommoncontrols) um es zu testen
-
Sööö, also laut meinem Test liest der das Verzeichnis aus, schreibts aber nicht in die TreeView...
mein Code sieht so aus :void C_ICWindow::LoadList(char *Path) { HANDLE fHandle; WIN32_FIND_DATA wfd; TV_ITEM tvi; TV_INSERTSTRUCT tvins; char fname[255]; sprintf(fname,"%s/*",Path); fHandle=FindFirstFile(fname, &wfd); if (FindNextFile(fHandle,&wfd) == TRUE) { TreeView_DeleteAllItems(hTree); tvi.mask = TVIF_TEXT; tvi.iImage = 0; tvi.iSelectImage = 1; tvins.hParent = TVGN_ROOT; tvins.hInstertAfter = TVI_LAST; tvins.item = tvi; while (FindNextFile(fHandle,&wfd) == TRUE) { strtok (wfd.cFileName, "."); tvi.pszText=wfd.cFileName; MessageBox (NULL, tvi.pszText, "Testausgabe Dateiname", MB_OK); TreeView_InsertItem(hTree, &tvins); } } }Tjoa - also für michg persönlich sieht das ganz vernünftig aus und die Messagebox zeigt mir auch das, was ich in der TreeView drin haben will.. nur seh ick nix!!
Waaarum aber?
-
Woher kommt hTree und ist das Handle gültig? Liefert TreeView_InsertItem einen Wert != NULL zurück?
Evtl. GetLastError befragen - steht allerdings nichts dazu in der Doku
-
hTree ist member der Klasse C_ICWindow...
die returnCodes kann ich aber wirklich mal abfangen.. melde mich dann wiedER

-
Soo, also ich bekomme bem insert ein NULL zurück und mein LastError ist 0.
Tolles sache das - scheinbar gibts garkeine Fehler für diese Funktionen...
-
Ich sehe gerade, dass du cchTextMax aus der TVITEM-Struktur gar nicht ausgefüllt hast, das musst du aber:
TVIF_TEXT
The pszText and cchTextMax members are valid.Wobei du es laut dieser Aussage doch nicht brauchst - aber probier's mal aus:
cchTextMax
Size of the buffer pointed to by the pszText member, in characters. If this structure is being used to set item attributes, this member is ignored.Ansonsten mal alles ausfüllen - oder zumindest mit 0 initialisieren.
-
hab ich auch schon gefunden - bisa jetzt klappts noch nicht..
ist es möglich, dass das Ganze auf BitMaps besteht? wäre doch aber blödsinnig..
-
Evtl. findest du mit Hilfe des Beispiels aus der MSDN-Library den "Fehler"
