Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
732 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Fonction récursive de destruction d'un repertoire et son sous ensemble

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction récursive de destruction d'un repertoire et son sous ensemble

n°1338553
molarisapa
Posté le 04-04-2006 à 11:50:18  profilanswer
 

Bonjour, je suis en train de faire une fonction qui détruit un répertoire récursivement avec l'ensemble des sous repertoires.
malheureusement, même si mon sous répertoire a été vidé, la destruction du repertoire rmdir(szRepertoire); ne marche pas systèmatiquement. Un peu comme si je n'avais pas fermé un objet  :whistle:  :(  
 
Quelqu'un peut t'il m'aider?
 
int DelRepertoire(LPSTR szRepertoire)
{
 HANDLE HFile;
 WIN32_FIND_DATA file_i;
 char sPathRep [MAX_PATH +1];
 char sFileSearch [MAX_PATH +1];
 strcpy(sPathRep, szRepertoire);
 if ( szRepertoire[lstrlen(szRepertoire)-1] != '\\')
    sprintf((LPSTR) sPathRep ,"%s%c", szRepertoire, '\\');
 sprintf((LPSTR) sFileSearch, "%s%s", sPathRep, "*" );
 
 HFile = FindFirstFile(sFileSearch,&file_i);
 if (INVALID_HANDLE_VALUE == HFile) return (0);
 
 
 sprintf(sFileSearch,"%s%s",sPathRep,file_i.cFileName);
 DeleteFile(sFileSearch);
 
 while(FindNextFile(HFile,&file_i) != 0)
 {
  if( !strcmp(file_i.cFileName,"." ) || !strcmp(file_i.cFileName,".." ) )
   continue;
 
  if( (file_i.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
   char * buffer = NULL;
   buffer=(char*) malloc( sizeof(char)*(strlen(sPathRep)+strlen(file_i.cFileName)+1) );
   strcpy(buffer,sPathRep);
   strcat(buffer,file_i.cFileName);
   strcat(buffer,"\\" );
   DelRepertoire(buffer, "*" );
  }
  else
  {
   sprintf(sFileSearch,"%s%s",sPathRep,file_i.cFileName);
   DeleteFile(sFileSearch);
  }
 }
 FindClose(HFile);
 rmdir(szRepertoire);
 return(0);
}

mood
Publicité
Posté le 04-04-2006 à 11:50:18  profilanswer
 

n°1338554
_darkalt3_
Proctopathe
Posté le 04-04-2006 à 11:51:04  profilanswer
 

en utilisant une structure d'arbre ?

n°1338636
Trap D
Posté le 04-04-2006 à 13:09:59  profilanswer
 

Pense à désallouer le char *buffer;

Code :
  1. strcat(buffer,"\\";
  2. DelRepertoire(buffer, "*" );
  3. free(buffer);

Es-tu sur du "rmdir" ??
Je  crois que le problème viens de ce que tu ajoute '\' à la fin de la chaîne passée en argument à DelRepertoire.


Message édité par Trap D le 04-04-2006 à 13:17:34

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Fonction récursive de destruction d'un repertoire et son sous ensemble

 

Sujets relatifs
Impossible de lire un cookie avec la fonction include?[C] Faire appel à une fonction dans une autre fonction
Modifier un champ en fonction de la date[Java] Probleme de répertoire courant
Upload - Pb de droits sur un répertoirefonction mail() : Recipient address rejected
fonction délai pour Pythonfonction preg_replace
[resolu]Fonction sqrt non reconnue...fonction PHP images
Plus de sujets relatifs à : Fonction récursive de destruction d'un repertoire et son sous ensemble


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR