Ordner auflisten
-
Mit einer if.

-
habe ich versucht aber irgendwie läuft das nicht wenn ich sage
if((LPCTSTR) finder.GetFileName() == ".") { Filefind = finder.FindNextFile(); m_ctlTabellenListe.AddString((LPCTSTR) finder.GetFileName()); }und als zweite Frage. Wie kann ich Dateien aus dem Ordner löschen?
-
Zeig mal auch den Code drumherum, ich vermute die if ist an der falschen Stelle.
-
1. machs lieber so das "." uebersprungen wird und nicht das nur ".." geadded wird sonst nichts
2. verzichtle lieber auf C- casts
3. schonmal nach "DeleteFile" oder aehnliches gesucht ?Pseudo:
BOOL bFound = folderfinder.FindFile(strPath + _T("\\*")); while(bFound) { bFound = folderfinder.FindNextFile(); CString strTmp = folderfinder.GetFileName(); if(!folderfinder.IsDirectory() && strTmp != _T('.') && strTmp != _T("..")) m_ctlTabellenListe.AddString(strTmp); // add with path //m_ctlTabellenListe.AddString(strTmp.Right(strTmp.ReverseFind(_T('\\'))); // add without path }
-
okay ich probiere das mal aus. was ist denn strPath für eine Variable? Das sollte doch der Ordner sein oder? Oder ist das der gesamte Pfad zum Ordner?
BOOL bFound = folderfinder.FindFile(strPath + _T("\\*")); while(bFound) { bFound = folderfinder.FindNextFile(); CString strTmp = folderfinder.GetFileName(); if(!folderfinder.IsDirectory() && strTmp != _T('.') && strTmp != _T("..")) m_ctlTabellenListe.AddString(strTmp); // add with path //m_ctlTabellenListe.AddString(strTmp.Right(strTmp.ReverseFind(_T('\\'))); // add without path }und mit Delete habe ich nur das gefunden
DeleteFile(DATEINAME);
aber wenn ich das ausprobiere, funktioniert das nicht
-
Lenni schrieb:
okay ich probiere das mal aus. was ist denn strPath für eine Variable? Das sollte doch der Ordner sein oder? Oder ist das der gesamte Pfad zum Ordner?
Wo ist der Unterschied? (Ja, es steht der komplette Pfad drin.)
und mit Delete habe ich nur das gefunden
DeleteFile(DATEINAME);
aber wenn ich das ausprobiere, funktioniert das nicht
Was funktioniert nicht, wie hast du es ausprobiert? Was steht als Dateiname drin?

...lass dir doch nicht alles aus der Nase ziehen, die Kristallkugeln sind immer noch nicht aus der Wartung zurück.
-
Ich würde die Punkte anders abfragen:
BOOL bFound = folderfinder.FindFile(strPath + _T("\\*")); while(bFound) { bFound = folderfinder.FindNextFile(); if(!folderfinder.IsDirectory() && (!folderfinder.IsDots() ) { CString strTmp = folderfinder.GetFileName(); m_ctlTabellenListe.AddString(strTmp); // add with path } }Hast Du schon mal probiert mit CListBox::Dir(...) zu arbeiten?
Zum Löschen sieh dir mal
CFile::.Remove(...);an.
-
Also mit dem Ordner auflisten funktioniert alles. Und mit der Funktion CListBox::Dir(...) habe ich noch nicht gearbeitet. Ist mir auch neu das es sowas gibt.
Das einzige was ich zu delete gefunden habe, ist der DeleteFile(DATEINAME);
sprich ich habe bei mir im Quellcode geschrieben DelteFile("Textdokument"); sowie DeleteFile(file);
mehr nicht
-
Zum Löschen sieh dir mal
CFile::.Remove(...);an.
-
Lenni schrieb:
sprich ich habe bei mir im Quellcode geschrieben DelteFile("Textdokument"); sowie DeleteFile(file);
mehr nichtUnd was sagt der Compiler bzw. das Programm dazu? (btw, heißt die zu löschende Datei wirklich "Textdokument" und befindet sich im Arbeitsverzeichnis des Programms?)
-
CFile::.Remove(...); läuft auch nicht.
char* pFileName; pFileName = _T("1.txt"); CFile::Remove(pFileName);Fehlermeldung: Eine unbenannte Datei wurde nicht gefunden.
TCHAR* habe ich auch verwendet, aber gleicher Fehler,und bei DeleteFile(); hat glaube ich ein Parameter gefehlt
hier die original syntax und da habe ich wohl einen fehler gemacht.
function DeleteFile( oFSO, strFile )
-
Dan ist Dein working directory ein anderes, als das in dem die Datei steht.
Du kanst nicht davon ausgehen, dass eine Delete ohne Pfad Angabe auf das Verzeichnis wirkt, in dem Dein Programm steht.
-
Danke läuft bestens!
Ich bin auch echt ein Trottel. So simpel^^
