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)

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é 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 1,123 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.