# Suppression de fichiers photos



## Pimousseu (25 Mai 2018)

Bonjour,

Lorsque je prends des photos avec mon boitier, 2 fichiers sont enregistrés sur ma carte :
1 fichier en .raw qui correspond au fichier brut
1 fichier en .jpg qui me sert pour les transfert aux amis, Facebook et consort

Lors de l'import via le logiciel de gestion photos Lightroom, trois fichiers sont déposés sur mon mac :
1 fichier horodaté en .raw qui correspond au fichier brut que je vais traiter
1 fichier horodaté en .xmp qui correspond au traitement que je fais subir au fichier brut
et enfin 1 fichier horodaté en .jpg qui correspond au fichier photo classique

Screenshot




Je souhaite pouvoir supprimer ou identifier par un tag couleur dans les dossiers où sont stockés mes fichiers photos les .jpg si 3 fichiers on la même structure de nommage (ex : 15-05-2018 - 22 43 07) mais pas les mêmes extensions.

Pour le moment je fais cela régulièrement a l'oeil, mais c'est pénible.


----------



## r e m y (25 Mai 2018)

Si tu tries l'affichage du Finder par type, ça doit être assez rapide de sélectionner le premier fichier jpg, puis le dernier et de tous leur coller une étiquette de couleur en 1 seule fois.


----------



## zeltron54 (25 Mai 2018)

@remy

Je pense qu' il veut seulement tagger ou déplacer les fichiers JPG qui ont un fichier de même nom avec extension raf.

* @ Pimousseu*

Donc je te propose un petit applescript qui te demande choisir:
1 le dossier contenant les fichiers raf et jpg à traiter
2 un dossier vierge qui recevra les fichiers jpg déplacés, qui ont un équivalent raf

Dis-moi si cela te convient


```
--déplace le fichier JPG du même nom que le fichier RAF si dans le même dossier agit dans le dossier et ces sous-dossier
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à déplacer"
    set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
    my inspecter(cheminsource, chemincible)
end tell

on inspecter(source, cible)
  
    set dossiersource to source as string
    set dossiercible to cible as string
  
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of source
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
              
                set extens to chaque_fichier
                set lextension to name extension of extens --récupère l'extension
                set nom to name of chaque_fichier
                set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
                set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
                set elements to text items of nom
                set nomcourt to (items 1 thru -2 of elements) as string
                set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
              
                if lextension = "raf" then -- vérifie si extension est RAF
                    set lejpg to dossiersource & nomcourt & ".jpg" as string --défini le nom identique avec extension JPG
                    if exists alias lejpg then -- si fichier jpg existe
                        move lejpg to cible --déplace le fichier JPG
                    end if
                end if
              
            end tell
        end repeat
        -- traitement des dossiers :
        set les_dossiers to folders of source
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier, cible)
        end repeat
    end tell
  
end inspecter

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
```


----------



## Pimousseu (25 Mai 2018)

zeltron54 a dit:


> @remy
> 
> Je pense qu' il veut seulement tagger ou déplacer les fichiers JPG qui ont un fichier de même nom avec extension raf.
> 
> ...



Je confirme que je souhaite tagger ou déplacer les fichiers .jpg qui ont un fichier de même nom avec extension .raf et en .xmp

Je fais un premier test ce soir de ton AS

Merci beaucoup dans tous les cas


----------



## Pimousseu (25 Mai 2018)

Je n'ai pas trop put patienter, et je viens de tester 
C'est parfait !!!

J'ai juste eu une erreur de temps d'exécution trop long en le faisant dans un dossier de 27go contenant plus de 1300 fichiers mais cela ne c'est pas reproduit au second et troisième essai


Merci beaucoup


----------



## zeltron54 (25 Mai 2018)

Content pour toi
Si problème n'hésite pas à demander.


----------



## Pimousseu (25 Mai 2018)

J'ai eu de nouveau l'erreur


----------



## zeltron54 (25 Mai 2018)

Surprenant, cette erreur signifie que le système met trop de temps à répondre.

faudrait voir ce qui bloque, et à quel moment.
Tu peux essayer en coupant ton gros dossier en plusieurs morceaux.
J'ai essayer chez moi sur un dossier d' environ 500 fichiers, sans aucun problèmes. Alors ???

Est-ce que cette erreur se produit au début, (avant d'avoir déplacer le moindre fichiers) ou en cours de déplacement, et après combien ?
Si c'est au début, le script charge dans une variable la totalité des fichiers contenu dans le dossier. Il faut un certain temps.


----------



## zeltron54 (25 Mai 2018)

Tu peux aussi essayer d'ajouter un commande pour changer le temps d'attente d'un "appleevent"
Pour cela tu ajoutes juste après la ligne   "on inspecter(source, cible)"    la ligne:
with timeout of 0 seconds
et juste avant la ligne   "end inspecter"   la ligne:
end timeout

La valeur originale du timeout est de 120 secondes, tu peux l'augmenter à 1200 par exemple (soit 20 minutes), ou la mettre à 0 ce qui est équivalent à infini.
en espérant qu'il n'y est pas une erreur dans tes fichiers et qu'elle tourne sans fin.


----------



## Pimousseu (25 Mai 2018)

En fait cela se produit quand je l'exécute sur les répertoires du NAS (donc distant)
J'ai mis un timeout a 600 secondes et si cela se produit encore, je procéderais autrement


----------



## zeltron54 (25 Mai 2018)

Effectivement sur un NAS, c'est différent le script ne doit pas gérer le chemin du réseau ! et je ne peut pas essayer, je ne possède pas de NAS.
Désolé.


----------



## Pimousseu (25 Mai 2018)

En mettant le timeout a 600 cela fonctionne sans soucis

C'est parfait


----------



## zeltron54 (25 Mai 2018)

Super, moi je ne pouvais pas tester.
J'ai mis assez de commentaires dans le script cela pourra te permettre de l'adapter à tes besoins.


----------



## Aduco (21 Avril 2020)

Bonjour Zeltron,
Je tenais juste à vous signaler que votre scripte m'a rendu de grands services !
Merci à vous !


----------

