- //Je ne place ici que la fonction de recherche et de renommage des fichiers
-
- //Recupere ce qui est dans le prefixe et y rajoute le *.*
- handle = GetDlgItem(hwnd,IDC_PREFIX);
- LenP=GetWindowTextLength(handle)+1;
- Prefixe=new char[LenP+1];
- GetWindowText(handle,Prefixe,LenP);
-
- Search=new char[LenP+3+1]; //= ce qui est contenu dans l'editbox + le \0 (ex: Nightwish-*\0)
- sprintf(Search,"%s*.*",Prefixe);
-
- //Recupere le Path du repertoire choisis et le selectionne
- handle = GetDlgItem(hwnd,IDC_EPATH);
- LenPath=GetWindowTextLength(handle)+1;
- Path=new char[LenPath+1];
- GetWindowText(handle,Path,LenPath);
- if(strcmp(Path,"")==0)
- {
- MessageBox(hwnd,"Vous devez selectionner un dossier avant de lancer le renommage !","Erreur",MB_ICONWARNING);
- return 0;
- }
- SetCurrentDirectory(Path);
-
- //Lance la Recherche
- HSearch=FindFirstFile(Search,&Info);
- if(HSearch!=INVALID_HANDLE_VALUE)
- {
- do
- {
- if(strcmp(Info.cFileName,".")!=0 && strcmp(Info.cFileName,"..")!=0) //Si c'est autre chose que ".." ou "."
- {
- NewName=new char[strlen(Info.cFileName)-LenP+1];
-
- //Recupere le nom de fichier sans le prefixe
- for(unsigned int i=0;i <= strlen(Info.cFileName)-LenP;i++)
- {
- NewName[i]=Info.cFileName[i+LenP-1];
- }
- NewName[strlen(Info.cFileName)-LenP+1]='\0';
-
- //Renomme
- if(rename(Info.cFileName,NewName)!=0)
- {
- ShowProg = new char[strlen(Info.cFileName)+113+1];
- sprintf(ShowProg,"Le Fichier %s n'a pus etre renommé !\nCette erreur est surrement dus au fait qu'un autre fichier porte le meme nom.",Info.cFileName);
- MessageBox(hwnd,ShowProg,"Erreur de Renommage",MB_ICONHAND);
- delete ShowProg;
- }
-
- NewName=new char[0]; //C'est le seul moyen que j'ai trouvé pour eviter le plantage.
- delete NewName; //en fait, delete aime pas que ma chaine se termine par \0, faites le test
-
- //Averti de ce qui se passe sur le label IDC_SPROGRESS
- ShowProg = new char[strlen(Info.cFileName)+30+1];
- sprintf(ShowProg,"Le fichier %s, a été renommé !!",Info.cFileName);
-
- handle = GetDlgItem(hwnd,IDC_SPROGRESS);
- SetWindowText(handle,ShowProg);
- delete ShowProg;
- }
- }while(FindNextFile(HSearch,&Info)!=NULL); //Et recommence tans qu'il y a des fichiers a rennomer
-
- //Dis que c'est FINI !
- handle = GetDlgItem(hwnd,IDC_SPROGRESS);
- SetWindowText(handle,"Tout les fichiers on bien été renommés !");
- }
- else
- {
- //Dis que c'est FINI !
- handle = GetDlgItem(hwnd,IDC_SPROGRESS);
- SetWindowText(handle,"Aucun fichiers n'a été renommés !");
- }
-
- delete Search;
- delete Path;
- delete Prefixe;
//Je ne place ici que la fonction de recherche et de renommage des fichiers
//Recupere ce qui est dans le prefixe et y rajoute le *.*
handle = GetDlgItem(hwnd,IDC_PREFIX);
LenP=GetWindowTextLength(handle)+1;
Prefixe=new char[LenP+1];
GetWindowText(handle,Prefixe,LenP);
Search=new char[LenP+3+1]; //= ce qui est contenu dans l'editbox + le \0 (ex: Nightwish-*\0)
sprintf(Search,"%s*.*",Prefixe);
//Recupere le Path du repertoire choisis et le selectionne
handle = GetDlgItem(hwnd,IDC_EPATH);
LenPath=GetWindowTextLength(handle)+1;
Path=new char[LenPath+1];
GetWindowText(handle,Path,LenPath);
if(strcmp(Path,"")==0)
{
MessageBox(hwnd,"Vous devez selectionner un dossier avant de lancer le renommage !","Erreur",MB_ICONWARNING);
return 0;
}
SetCurrentDirectory(Path);
//Lance la Recherche
HSearch=FindFirstFile(Search,&Info);
if(HSearch!=INVALID_HANDLE_VALUE)
{
do
{
if(strcmp(Info.cFileName,".")!=0 && strcmp(Info.cFileName,"..")!=0) //Si c'est autre chose que ".." ou "."
{
NewName=new char[strlen(Info.cFileName)-LenP+1];
//Recupere le nom de fichier sans le prefixe
for(unsigned int i=0;i <= strlen(Info.cFileName)-LenP;i++)
{
NewName[i]=Info.cFileName[i+LenP-1];
}
NewName[strlen(Info.cFileName)-LenP+1]='\0';
//Renomme
if(rename(Info.cFileName,NewName)!=0)
{
ShowProg = new char[strlen(Info.cFileName)+113+1];
sprintf(ShowProg,"Le Fichier %s n'a pus etre renommé !\nCette erreur est surrement dus au fait qu'un autre fichier porte le meme nom.",Info.cFileName);
MessageBox(hwnd,ShowProg,"Erreur de Renommage",MB_ICONHAND);
delete ShowProg;
}
NewName=new char[0]; //C'est le seul moyen que j'ai trouvé pour eviter le plantage.
delete NewName; //en fait, delete aime pas que ma chaine se termine par \0, faites le test
//Averti de ce qui se passe sur le label IDC_SPROGRESS
ShowProg = new char[strlen(Info.cFileName)+30+1];
sprintf(ShowProg,"Le fichier %s, a été renommé !!",Info.cFileName);
handle = GetDlgItem(hwnd,IDC_SPROGRESS);
SetWindowText(handle,ShowProg);
delete ShowProg;
}
}while(FindNextFile(HSearch,&Info)!=NULL); //Et recommence tans qu'il y a des fichiers a rennomer
//Dis que c'est FINI !
handle = GetDlgItem(hwnd,IDC_SPROGRESS);
SetWindowText(handle,"Tout les fichiers on bien été renommés !");
}
else
{
//Dis que c'est FINI !
handle = GetDlgItem(hwnd,IDC_SPROGRESS);
SetWindowText(handle,"Aucun fichiers n'a été renommés !");
}
delete Search;
delete Path;
delete Prefixe;