begin process at 2012 02 12 13:55:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Problème de chaine :S


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

Problème de chaine :S

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

Administrateur CodeS-SourceS
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ée 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 2,808 sec (4)

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