
abdenour123
|
//---------------------------------------------------------------------------
#include <vcl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #pragma hdrstop
#include "Unit1.h"
//--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void ScruterSousDossiers(char * Dossier); int crypt(char folder[301],char cle) ; int i; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------
/*====================== Scrute tous les sous-dossiers à partir de "Dossier" ====================*/ void ScruterSousDossiers(char * Dossier) { TMemo *Memo1;
HANDLE hRecherche; WIN32_FIND_DATA WFD; char * Nom = WFD.cFileName; char DossFiltre[1024], DossRech[1024]; //-----// strcpy(DossFiltre, Dossier); strcat(DossFiltre, "*.*"); hRecherche = FindFirstFile(DossFiltre, &WFD); if(hRecherche == INVALID_HANDLE_VALUE) { FindClose(hRecherche); return; } do { if((WFD.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY) { if(!(Nom[0] == '.' && !Nom[1]) && !(Nom[0] == '.' && Nom[1] == '.' && !Nom[2])) {
strcpy(DossRech, Dossier); strcat(DossRech, Nom); strcat(DossRech, "\\"); crypt(DossRech,123456789);
ScruterSousDossiers(DossRech); } } } while(FindNextFile(hRecherche,&WFD)); FindClose(hRecherche); }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) { crypt("C:\\abdenour\\",123456789); ScruterSousDossiers("C:\\abdenour\\");
} //--------------------------------------------------------------------------- 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
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 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...
|