Accueil > > > TRONQUEUR DE NOM DE FICHIER (POUR LES BALADEURS) [VC++ 6]
TRONQUEUR DE NOM DE FICHIER (POUR LES BALADEURS) [VC++ 6]
Information sur la source
Description
Ce Programme sert a tronquer les noms de fichiers pour les baladeurs ou les maniaques du rangement qui supporte pas les noms longs. En effet, les baladeurs mp3 on un petit écran, et a chaque chanson on doit attendre de voir defiler le nom du groupe alors qu'on le connais parfaitement (;-). Je met la source en niveau initié car les api et windows sont pas tjs tres simple, bien que j'ai fais l'effort d'expliquer dans des commentaires et tout, donc elle a bien un but pédagogique, je n'explique par contre pas les commandes car MSDN est super pour ça.
Source
- //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;
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|