cs_goth
Messages postés82Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention23 août 2005
-
23 déc. 2002 à 13:44
cs_abdenour123
Messages postés17Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention29 mai 2009
-
11 août 2008 à 00:14
sachant que je vais me servir de vc++ 6 j'aimerais savoir comment parcourir un repertoire(recursivement) et ses entrées puisque, a priori(sauf erreur de ma part) ya pas opendir et readdir qui sont relativement pratique.
}
//---------------------------------------------------------------------------
int crypt(char folder[301],char cle)
{
FILE *f;//Pointeur vers le ficher a crypter
FILE *fcrypt;//Pointeur vers le fichier crypté
FILE *tmp;//Pointeur vers le fichier temporaire
// char folder[301];//Contient le nom du dossier a crypter
char octet;//Octet lu dans le fichier a crypter
// char nf[100];//Contient le nom du fichier
char path[351]="";//Chemin du fichier a crypter
char pathtmp[301]="";//Chemin du fichier temporaire
strcpy(pathtmp, folder); //Chemin du fichier
strcat(pathtmp, "\\temp.abdenour"); //temporaire
HANDLE search;
strcpy(path, folder); //Les fichiers a crypter sont tout ceux contenu
strcat(path, "\\*.*");//dans folder...
LPCTSTR dir = path;
WIN32_FIND_DATA IpFindFileData;
search = FindFirstFile(dir,&IpFindFileData);//On cherche le 1er fichier
f = fopen(path, "rb"); //On ouvre le fichier
if(f!=NULL)//Si il n'y a pas d'erreur lors de l'ouverture du fichier...
{
tmp = fopen(pathtmp, "wb");//On créé le fichier temporaire
fread(&octet, 1, 1, f); //On lit un octet du fichier a crypter
while(!feof(f))//Tant qu'on est pas a la fin du fichier...
{
fwrite(&octet, 1, 1, tmp);//...on ecrit l'octet lu dans le fichier temp.
fread(&octet, 1, 1, f);//et on en lit un nouveau dans le fichier
}
fclose(f);//On ferme le fichier
fclose(tmp);//On ferme le fichier temporaire
remove(path);//On suprimme le fichier
fcrypt = fopen(path, "wb");//On créé un nouveau fichier ayant le même nom que l'ancien
tmp = fopen(pathtmp, "rb");//On ouvre le fichier temporaire en lecture
fread(&octet, 1, 1, tmp);//On lit un octet du fichier temporaire
while(!feof(tmp))
{
octet=octet^cle;//On inverse les bits de l'octet lu...
fwrite(&octet, 1, 1, fcrypt);//...et on l'ecrit dans le nouveau fichier...
fread(&octet, 1, 1, tmp);//...puis on lit un nouvel octet dans le fichier temp.
}
fclose(tmp);//On ferme le ficheir temporaire
fclose(fcrypt);//On ferme le fichier crypté
remove(pathtmp);//On supprime le fichier temporaire
}
while(FindNextFile(search, &IpFindFileData))//On cherche des fichiers tant qu'on en trouve.
{
printf(".");
strcpy(path, folder);
strcat(path, "\");
strcat(path, IpFindFileData.cFileName);
f = fopen(path, "rb"); //On ouvre le fichier
if(f!=NULL)//Si il n'y a pas d'erreur lors de l'ouverture du fichier...
{
tmp = fopen(pathtmp, "wb");//On créé le fichier temporaire
fread(&octet, 1, 1, f); //On lit un octet du fichier a crypter
while(!feof(f))//Tant qu'on est pas a la fin du fichier...
{
fwrite(&octet, 1, 1, tmp);//...on ecrit l'octet lu dans le fichier temp.
fread(&octet, 1, 1, f);//et on en lit un nouveau dans le fichier
}
fclose(f);//On ferme le fichier
fclose(tmp);//On ferme le fichier temporaire
remove(path);//On suprimme le fichier
fcrypt = fopen(path, "wb");//On créé un nouveau fichier ayant le même nom que l'ancien
tmp = fopen(pathtmp, "rb");//On ouvre le fichier temporaire en lecture
fread(&octet, 1, 1, tmp);//On lit un octet du fichier temporaire
while(!feof(tmp))
{
octet=octet^cle;//On inverse les bits de l'octet lu...
fwrite(&octet, 1, 1, fcrypt);//...et on l'ecrit dans le nouveau fichier...
fread(&octet, 1, 1, tmp);//...puis on lit un nouvel octet dans le fichier temp.
}
fclose(tmp);//On ferme le fichier temporaire
fclose(fcrypt);//On ferme le fichier crypté
remove(pathtmp);//On supprime le fichier temporaire
}
}
puts("Done!");
getchar();
fflush(stdin);
FindClose(search);//La recherche est terminée...
}//...la fonction aussi...