1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| function renommagephoto()
%==========================================================================
%renommagephoto - renomme toutes les photos d'un répertoire
% avec date+heure+minute et un nom donné par l'utilisateur.
%Entrées : néant (les entrées sont demandées par input utilisateur
%Sorties : néant
%
%Fonctions utilisées :
% uigetdir, inputdlg, isempty, dir, pwd, cd, fileparts, datestr, exist,
% movefile, sprintf
%==========================================================================
%Récupération du répertoire où se trouvent les photos à renommer
directory = uigetdir(pwd,...
'Dans quel répertoire sont les photos à renommer ?');
%Cas d'annulation
if directory==0,return,end
%Récupération du nom racine
answer = inputdlg(['Donner le nom racine',10,...
'Les fichiers seront nommés : yymmddhhmm_<racine>'],...
'Renommage Photos');
%Cas d'annulation
if isempty(answer),return,end
racine = answer{1};
%Récupération de tous les élements du répertoire (on ne fait pas de
%ségrégation entre JPG, GIF ...(peut aussi y avoir des vidéos ;)
liste = dir(directory);
%Initialisation de la cellule contenant les éventuels messages d'erreur
msgerreurs = '';
%On boucle sur la structure
for k=1:length(liste)
%Dans le cas où l'élément n'est pas un sous-répertoire
if ~liste(k).isdir
%Recuperation de l'extension
%On met 3 fois le même argument car seul le 3ème nous intéresse
[extension,extension,extension] = fileparts(liste(k).name);
%Le nouveau nom est donné par la date du fichier + le mot-clé donné
%par l'utilisateur + l'extension
nouveau_nom = fullfile(directory,...
[datestr(liste(k).datenum,'yymmddHHMM'),'_',racine,extension]);
%Si on a pris 2 photos dans la même minute ça peut ne pas passer
n = 1;
while exist(nouveau_nom)
n = n+1;
nouveau_nom = fullfile(directory,...
[datestr(liste(k).datenum,'yymmddHHMM'),...
sprintf('_%d_',n),racine,extension]);
end
%Renommage
[statut,message] = movefile(...
fullfile(directory,liste(k).name),...
nouveau_nom);
%Traitement des cas d'erreur
if ~statut
msgerreurs = [msgerreurs,10,liste(k).name,' : ',message];
end
end
end
%S'il y a des messages d'erreurs on affiche
if ~isempty(msgerreurs)
disp(msgerreurs);
end
%========================================================================== |
Partager