Dialoganwendung Buttonaktion



  • Hallo Leute,

    ich habe eine Frage zu einer Dialogbasierenden Anwendung.
    Ich möchte gerne den Inhalt eines Ordners bspw. Temp, mit einem Klick auf einen Button löschen.
    Wie lautet die Funktion und wie gebe ich den Pafd an, damit nach dem Klick auf dem Button der entsprechende Ordner gelöscht ist??
    Wäre sehr nett, wenn mir einer/eine helfen kann, suche schon eine ganze weile.
    Thx



  • Schau mal in die FAQ, da steht schon einiges.
    Und bei Codeguru.com steht auch noch vieles was nützlich ist.

    Devil



  • Die Antwort hat mir nicht wirklich geholfen. thx.



  • ich brauche konkret (krasse) links 😉



  • Hallo,

    danke für den Hinweis...aber derFAQ ist eher spärlich besäht, was dieses thema betrifft...ich würde gerne etwas als bsp sehen wollen...wie halt solch eine pfadangabe mit anschließender rekursiver löschung vonstatten geht.



  • So. Das sollte gehen:

    bool DelTree(const CString& Path)
    {
        CFileFind ff;
        bool err = false;
    
        BOOL cont = ff.FindFile(Path + "\\*");
        while(cont)
        {
            cont = ff.FindNextFile();
            if(ff.IsDots())
                continue;
            if(ff.IsDirectory())
                err |= !DelTree(ff.GetFilePath());
            else
            {
                CString file(ff.GetFilePath());
                SetFileAttributes(file,FILE_ATTRIBUTE_NORMAL);
                err |= !DeleteFile(ff.GetFilePath());
            }
        }
        ff.Close();
    
        SetFileAttributes(Path,FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY);
        err |= !RemoveDirectory(Path);
    
        return !err;
    }
    

    Nach Topic umbenennen ab in die FAQ?

    [ Dieser Beitrag wurde am 01.12.2002 um 09:54 Uhr von Nemesyzz editiert. ]



  • Hallo,

    danke ersteinmal für deine Mühe...das sieht von allen Beiträgen am besten aus...wenn ich nun auf den button klicke und bspw den ordner Temporary Internet Files im Pfad

    C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Temporary Internet Files

    löschen will...an welcher stelle im code kommt denn die pfadangabe genau hin???

    Nice Advent



  • DelTree("C:\\Dokumente und Einstellungen\\Administrator\\Lokale Einstellungen\\Temporary Internet Files");



  • Ersteinmal vielen dank an euch...es klappt...sehr geil...habe schon sehr lange dananch gesucht...LOB...jetzt hab ich noch eine Frege 😃
    Ich möchte der Dialoganwendung einen weiteren Button spendieren...über diesen Button soll der Anwender sich durch das Filesystem bewegen können, um einen Ordner seiner Wahl hinzuzufügen, der immer dann mit gelöscht wird, wenn auf den Button LÖSCHEN geklickt wird...welche Möglichkeiten gibt es und wie kann ich es realsisieren...wenn es ein Tutorial irgendwo gibt, reiht mir auch der Link dahin...

    Gruss dbase



  • @dbase

    So lernst Du zwar nix... aber hier findest Du etwas dazu !!!

    http://webtools.gu1.info/wbboard/thread.php?threadid=32&boardid=6&styleid=2

    MfG veganza



  • Hallo allerseits,

    dank eurer hilfe bin ich jetzt schon wesentlich weiter vorangeschritten...jetzt habe ich mal ne frage zu SHBrowseForFolder. Ich habe eine Variable folgendermaßen deklariert BROWSEINFO m_BrowserInfo;

    Über meine Funktion kann ich nun im Verzeichnisbaum navigieren, wobei die Funktion folgendermaßen aussieht

    void CBrowseDlg::OnAddFolder()
    {
    SHBrowseForFolder(&m_BrowserInfo);
    UpdateData(TRUE);
    }

    Nun soll nach einer erfolgten Auswahl eines Ordners der entsprechnde Pfad zu dem Ordner in einer textdatei gespeichert werden, so dass beim Klicken auf einen "Löschen Button" der entsprechende Ordnerinhalt mitgelöscht wird und der ausgewählte Pfad permanent zur Löschaktion dazugehört.

    Nach Programmstart soll zuerst nach der Datei(die jetzt die zusätzlichen Pfade der zu löschen Ordnerinhalte enthält) im Installationsornder gesucht werden(im Installationsordner meines Programms) und wenn die Datei existiert, soll der Inhalt ausgelesen werden, so dass halt das Hinzufügen der Ordner nur einmal gemacht werden muss.

    Für Hilfe bin ich euch dankbar...

    Gruss dbase


Anmelden zum Antworten