rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 2007
-
11 juin 2007 à 10:55
bro love
Messages postés6Date d'inscriptionsamedi 25 novembre 2006StatutMembreDernière intervention 4 novembre 2010
-
12 oct. 2009 à 04:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Pourtant il n'y a qu'un seul fichier dans ce dossier :s
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 11 juin 2007 à 10:55
il faut un peu plus factoriser le code :
//fonction permettant la suppression du contenu d'un répertoire sans le supprimer
void DeleteAll(TCHAR * repertoire)
{
TCHAR Path[MAX_PATH] ;
_tcscpy(Path, repertoire) ;
_tcscat(Path, TEXT("\\*")) ;
TCHAR dossier[MAX_PATH] ;
WIN32_FIND_DATA wfd;
HANDLE hfl = FindFirstFile(Path, &wfd); // Recherche du premier fichier du répertoire
if(hfl != INVALID_HANDLE_VALUE)
{
do
{
_tcscpy(dossier, repertoire) ;
_tcscat(dossier, TEXT("\")) ;
_tcscat(dossier, wfd.cFileName) ;
if (wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) // Si il s'agit d'un dossier
{
DeleteAll(dossier) ; // Suppression récursive des dossiers
RemoveDirectory(dossier) ; // Suppression du dossier
}
else
{
DeleteFile(dossier); // Suppression du fichier
}
}
while(FindNextFile(hfl, &wfd)); // Tant qu'il y a de nouveaux fichiers
FindClose(hfl); // Fermeture du dossier de recherche
}
}
apres je ne suis pas sous win mais ne pourrais tu pas garder qu'un seul des deux buffers ?
12 oct. 2009 à 04:53
Pouviez-vous me dire quelles sont les classes à importer?
Merci
30 mars 2009 à 11:51
J'ai tester la fonction sur un dossier C:\doss\ qui contient un fichier test.txt
et lorsque je lui done C:\doss ( comme la fonction rajoute le \* )
Ca boucle infini et la variable dossier vaut :
"C:\doss\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\." etc ..
Pourtant il n'y a qu'un seul fichier dans ce dossier :s
11 juin 2007 à 10:55
//fonction permettant la suppression du contenu d'un répertoire sans le supprimer
void DeleteAll(TCHAR * repertoire)
{
TCHAR Path[MAX_PATH] ;
_tcscpy(Path, repertoire) ;
_tcscat(Path, TEXT("\\*")) ;
TCHAR dossier[MAX_PATH] ;
WIN32_FIND_DATA wfd;
HANDLE hfl = FindFirstFile(Path, &wfd); // Recherche du premier fichier du répertoire
if(hfl != INVALID_HANDLE_VALUE)
{
do
{
_tcscpy(dossier, repertoire) ;
_tcscat(dossier, TEXT("\")) ;
_tcscat(dossier, wfd.cFileName) ;
if (wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) // Si il s'agit d'un dossier
{
DeleteAll(dossier) ; // Suppression récursive des dossiers
RemoveDirectory(dossier) ; // Suppression du dossier
}
else
{
DeleteFile(dossier); // Suppression du fichier
}
}
while(FindNextFile(hfl, &wfd)); // Tant qu'il y a de nouveaux fichiers
FindClose(hfl); // Fermeture du dossier de recherche
}
}
apres je ne suis pas sous win mais ne pourrais tu pas garder qu'un seul des deux buffers ?