begin process at 2012 05 29 01:03:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

comment peut on faire effacer l'enssemble d'un dossier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment peut on faire effacer l'enssemble d'un dossier

mercredi 28 décembre 2005 à 22:53:55 | comment peut on faire effacer l'enssemble d'un dossier

baby3378

bonjour,
Comme l'indique le titre je cherche un moyen de suprimer l'enssemble des fichiers d'un dossier.

La raison: un ami m'a passé son programe qui créé un fichier texte d'archivage chaque jour. donc je cherche a les suprimer tous tous les mois automatiquement.

Je vous remerci d'avance et vous souhaite une bonne soiré.

PS: voici ce de quoi je dispose:

_Dev C++
_windows xp
mercredi 28 décembre 2005 à 22:59:23 | Re : comment peut on faire effacer l'enssemble d'un dossier

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
http://www.cppfrance.com/code.aspx?ID=27922

Tu suis la même logique, sauf que tu remplaces GetFileSize par DeleteFile
jeudi 29 décembre 2005 à 14:32:44 | Re : comment peut on faire effacer l'enssemble d'un dossier

julienbj

Réponse acceptée !

Petite fonction que j'avais fait il y a quelques temps:


//Suppression des données d'un répertoire
//param:
//        *dirName:    Chemin d'accès du répertoire à supprimer
//        *extension:    Extension des données à supprimer (*.* pour supprimer tous les fichiers)
//        delDir:        Booléen indiquant si il faut oui ou non supprimé le répertoire donné ou juste son contenu
void deleteDir(HWND hParent, char *dirName, char *extension, BOOL delDir)
{
    char initialDir[256];
    WIN32_FIND_DATA wfd;
    HANDLE file;

    //Sauvegarde du répertoire courant
    getcwd(initialDir, 255);

    //Changement du répertoire courant + quitte la fonction si le répertoire donné n'est pas trouvé
    if (chdir(dirName) == -1)
    {
        MessageBox(hParent, "Le dossier spécifié n'existe pas", dirName, MB_OK | MB_ICONINFORMATION);
        return;
    }

    //Recherche de tous les fichiers et répertoire
    file = FindFirstFile(extension, &wfd);
    if (file != INVALID_HANDLE_VALUE) //Si on a trouvé des fichiers, alors on les supprime un par un
    {
        char fileName[256];
        BOOL nextFile = TRUE;

        do
        {
            strcpy(fileName, wfd.cFileName);

             //Si on a à faire à un dossier, on supprime les dossiers et fichier qu'il a à l'intérieur, puis on le supprime lui
            if (wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY && stricmp(fileName, ".") && stricmp(fileName, ".."))
            {
                deleteDir(hParent, fileName, extension, FALSE);
                if (RemoveDirectory(fileName) == FALSE)
                    MessageBox(hParent, "Impossible de supprimer le répertoire.\nVérifier les droits d'accèes", fileName, MB_OK | MB_ICONERROR);
            }

            //Si ce n'est qu'un fichier, on le supprime
            else if (stricmp(fileName, ".") && stricmp(fileName, ".."))
                if (DeleteFile(fileName) == FALSE)
                    MessageBox(hParent, "Impossible de supprimer le fichier.\nVérifier les droits d'accèes", fileName, MB_OK | MB_ICONERROR);

            //On récupére l'élément suivant
            nextFile = FindNextFile(file, &wfd);
        } while (nextFile == TRUE);

        //Fin du parcours
        FindClose(file);
    }

    //Suppression du repértoire courant
    if (delDir == TRUE)
        RemoveDirectory(dirName);

    //Restauration du répertoire courant
    chdir(initialDir);

}

Il y a probablement des choses a revoir (ce n'était pas la derniere version, mais je remets plus la main dessus) mais elle fonctionne.
Le seul probleme: Les fichiers protégés ou en cours d'utilisation (genre certains fichiers temporaires).
Sinon, supprime bien tous les fichiers d'un répertoire (et de ses sous répertoires).

Sinon, une petite question: Y a-t-il moyen de ne pas récupérer les répertoires "." et ".." lorsque l'on utilise les fonctions du type FindNextFile?

Vive le C
Tchao
Savon
jeudi 29 décembre 2005 à 17:41:35 | Re : comment peut on faire effacer l'enssemble d'un dossier

baby3378

hoooo,
Dites moi seulement comment vous remercier !!!!!!!!

merki beaucoup et je vous souhaite une bonne journée a tous


jeudi 29 décembre 2005 à 19:46:22 | Re : comment peut on faire effacer l'enssemble d'un dossier

Matt67

Bonsoir,

As tu essayé ceci : SHFileOperation.

Matt...
jeudi 29 décembre 2005 à 21:18:06 | Re : comment peut on faire effacer l'enssemble d'un dossier

baby3378

nan je croi pas,
c'est koi "ShfileOperation" comment on l'utilise.



Cette discussion est classée dans : cherche, dossier, effacer, suprimer, enssemble


Répondre à ce message

Sujets en rapport avec ce message

PB pour parcourir tout les dossiers [ par supers03 ] Bonjours à tousJ'ai écrit un programme qui parcour un dossier et ses sous-dossier, avec une fonction qui "s'auto appel" :void cherche(char *s){    HAN suprimer un fichier [ par anubis52100 ] bonjour voila j'ai dans un fichier texte des caractère je souhaiterai effacer ces caractèreou sinon je soouhaiterai effacer le fichier du disque dur.m je cherche des info sur le Midi mon but est de créer un ptit séquenceur [ par garthos ] je cherche comment voir les différentes interfaces midi installer sur ma machine ainsi que comment récuperer les entrées/sorties de celle ci ! pour y Librairie Midi !! [ par garthos ] je cherche un équivalent du package java : javax.sound.midi mais pour le C++ je cherche qqch de transportable si possible! merci suprimer l'attente dans les fonction accept et recv en c++!! [ par svirpiren ] bas la question est dans le titre, mercie d'avance.pierre cherche colaborateur pour création de jeu [ par L666 ] bonjour a tous je recherche des programmateur assez for en C++ pour utilizer un moteur 3D que je posséde déja, par se que je suis pa assez for en C++ URGENT rech info sur Comparaison de dossier [ par LOIC83 ] Voila, j'ai un projet de Langage C où je dois comparer des fichiers et des répertoires selon leur taille, leur nom... Si quelq'un avait des infos ou d comment effacer un enregistrement texte à partir de C++ [ par dpfort ] BonsoirJe cherche un script C++ qui me permet de supprimer un enregistrement donné qui se trouve dans un fichier texte.Merci de votre réponse Aide C++ [ par duodiscus ] salut,jsuis en galère jdois faire un ti programme en c++ sous KWritejdois faire un menu :1-Remonter d'un dossier2- Descendre dans un dossier3-Lister l Calcul de la fonction Gamma (ou son logarithme) [ par PeteTheBull ] Bonjour Je cherche un code qui calcule la fonction gamma(double). Je cherche une précision énorme (10e-15 au moins). Quelqu'un aurait-il un lien a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales