Ordner auflisten



  • 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 nicht

    Und 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 
    )
    

  • Mod

    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^^

    🙂


Anmelden zum Antworten