|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Problème de chaine :S [ Archives / Fichier / Disque ] (sebastienbro)
Informations & options pour cette discussion
samedi 15 novembre 2003 à 15:14:21 |
Problème de chaine :S

sebastienbro
|
Bonjour à tous ! J'ai créé une fonction pour vider un dossier de ces fichiers, suivant différents paramètres. Le problème, c'estq ue ça marche pour un petit nombre de fichiers / dossier, mais dès que el nombre est trop élevé, j'ai des chaine qui se mélange, enfin ça marche plus :( Si quelqu'un pouvait me dire ce qui va pas, je trouve pas :( Merci d'avance ! Voici le code : BOOL ViderDossier(char *szChemin, int iOpt, BOOL FirstPass) {
char *szTmp = NULL; char *szCheminTmp; WIN32_FIND_DATA Data; HANDLE Search; DWORD Attrs = 0; BOOL DelParent = TRUE;
if (FirstPass) {
switch (iOpt) { case 0: case 1: case 2: DelParent = TRUE; break; case 3: case 4: DelParent = FALSE; break; }
}
szCheminTmp = (char *) malloc(strlen(szChemin)+1); strcpy(szCheminTmp, szChemin);
printf("%s\n", szCheminTmp);
if (szCheminTmp[strlen(szCheminTmp)] != '\\') { szCheminTmp[strlen(szCheminTmp)] = '\\'; szCheminTmp[strlen(szChemin) + 1] = 0; }
/* Pour un minimum de sécurité, on vérifie que le chemin est différent de x:\ */
if (strlen(szCheminTmp) <= 3) return FALSE; szTmp = (char *) malloc(MAX_PATH); szTmp[0] = 0; strcpy(szTmp, szCheminTmp); strcat(szTmp, "*.*");
Search = FindFirstFile(szTmp, &Data);
if (Search == INVALID_HANDLE_VALUE) return FALSE; do { //printf("Attribue : %d - %s\n", (Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY), szTmp); if ((Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) { /* C'est un fichier ! */ if (DelParent) { /* On peut supprimer les fichier */ if ((strcmp(Data.cFileName, ".") != 0) && (strcmp(Data.cFileName, "..") != 0)) { szTmp = (char *) malloc(MAX_PATH); strcpy(szTmp, szCheminTmp); strcat(szTmp, Data.cFileName); Attrs = GetFileAttributes(szTmp); if ((Attrs & FILE_ATTRIBUTE_READONLY) != 0) { /* Lecture seule */ SetFileAttributes(szTmp, (Attrs - FILE_ATTRIBUTE_READONLY)); } /* On supprime les fichiers */ DeleteFile(szTmp); free(szTmp); } }
} /* A partir d'ici, tous les fichiers sont supprimés du dossier ! */ if (iOpt == 0) /* On ne continue pas */ continue; if ((Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) { /* C'est un dossier */ if ((strcmp(Data.cFileName, ".") != 0) && (strcmp(Data.cFileName, "..") != 0)) { /* On peut vider ce dossier */ szTmp = (char *) malloc(MAX_PATH); strcpy(szTmp, szCheminTmp); strcat(szTmp, Data.cFileName); printf("Chemin du dossier : %s\n", szTmp); ViderDossier(szTmp, iOpt, FALSE); /* Si iOpt est différent de 3 et de 1, on peut supprimer le dossier vidé */ if ((iOpt != 3) && (iOpt != 1)) { //szTmp[strlen(szTmp)-1] = 0; Attrs = GetFileAttributes(szTmp); if ((Attrs & FILE_ATTRIBUTE_READONLY) != 0) { /* Lecture seule */ SetFileAttributes(szTmp, (Attrs - FILE_ATTRIBUTE_READONLY)); } RemoveDirectory(szTmp); } } } } while (0 != FindNextFile(Search, &Data)); FindClose(Search); return TRUE;
}
|
Merci d'avance \* -- Seb [ Mail] [ Web] -- */
|
|
|
samedi 15 novembre 2003 à 15:22:54 |
Re : Problème de chaine :S

BruNews
|
Regarde dans mes source, il y en a une qui liste tous les disques, au lieu de lister tu supprimeras. BruNews, ciao...
|
|
|
samedi 15 novembre 2003 à 16:39:39 |
Re : Problème de chaine :S

sebastienbro
|
Merci beaucoup, grâce à ton code j'ai réussi :) Merci !!! \* -- Seb [ Mail] [ Web] -- */
|
|
|
Cette discussion est classé dans : dossier, data, char, sztmp, szchemintmp
Répondre à ce message
Sujets en rapport avec ce message
Memo hexa char patin couffin [ par Tautau ]
Bon ben voila apres plusieurs heures à chercher par moi meme sur l'aide de buider je me resilis a demander de l'aide:Je dois afficher dans un memo une
mettre un texte dans une textBox [ par typhoun ]
Ca ne doit pas être très compliqué mais je ne vois pas comment faire pour mettre un texte dans une textBox et pour qu'il s'affiche correctement:char*
recherche du dossier application data [ par fuliculi ]
Bonjour à tous,je cherche le répertoire "application data" de la session en court pour y retrouver des fichiers de flash *.sol (shared object) histoir
test sur variable de type char [ par enrageur ]
j'aimerais indetifier des mots dans un fichier txt. J'ouvre le fichier et je le copy dans un char (data). Ensuite je fais un test pour voir si les deu
Erreur de tansmission (octet manquant) [ par makmibad ]
Bonjour, je suis en train de développer un client serveur sous C++ et je rencontre des difficultes lors de la mise en oeuvre du serveur, je m'explique
Addition sur pointeurs [ par CCJ ]
Bonjour.Je cherche actuellement a determiner la taille d'un tableau. J'ai donc ecrit le petit bout de code suivant :template long SizeofArray(T * dat
Pointeurs [ par rourou2030 ]
Salut à tous,j'ai des lacunes concernants les pointeurs.En fait voici mon problème:Soitunsigned char *dataunsigned char *bufferest ce que l'appelle
tableau des caractere en C [ par themahg ]
ThemahG, Japon toujours! j'ai un problème avec mon programme il bloque à partir de la fonction si dessous:ai
récupérer le text d'une textBox [ par typhoun ]
je voudrai mettre le texte d'une textbox dans un char mais sa me met une erreur.char* data;data = (char*) malloc(15);data = this->textBox1->Text;et l'
Pb avec petit programme port parallèle [ par llorden ]
Bonjour,J'ai fait un petit programme pour écrire et lire le port parallèle mais ça ne fonctionne pas.De plus quand je branche mon montage toutes les L
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|