# Deplacer fichiers RAW d'après dossier contenant les fichiers JPEG du même nom



## Rayfresh (21 Février 2015)

Bonjour,

J'aimerais automatiser une tâche, sélectionner les fichiers source RAW et les déplacer dans un autre dossier, d'après les fichiers (du même nom et JPEG) envoyés par le client pour sélection.

*Explication :*
1 - Je shoote en RAW des photos pour un client.
2 - Je développe les photos d'un shooting en petit format et JPEG pour un client.
3 - Il me renvoie un dossier contenant toutes les photos qu'il a sélectionnées (fichiers JPEG).
J'aimerais utiliser un script ou Automator pour sélectionner le dossier client contenant les JPEG et qu'il me trouve les RAW du même nom dans un dossier que je lui indique "Capture" et qu'il les déplace dans un dossier nommé "Selects".


*AVANT SCRIPT

Le client m'a mis dans un dossier les fichiers :*
photo_002.jpg
photo_003.jpg

Les dossiers Capture (contenant les Raw) et le dossier Selects (contenant les fichiers Raw selectionnés par le client) sont au même niveau :
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*Capture*
photo_001.CR2
photo_002.CR2
photo_003.CR2
photo_004.CR2​
*Selects*
(vide)​- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -





*APRES EXECUTION SCRIPT*
Les fichiers photo_002.CR2 + photo_003.CR2 ont été déplacés dans le dossier "Selects"
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*Capture*
photo_001.CR2
photo_004.CR2​
*Selects*
photo_002.CR2
photo_003.CR2​- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -






J'ai bien tenté avec Automator mais en vain.
Si quelqu'un peut m'aider...

Merci beaucoup


----------



## JacqR (21 Février 2015)

Bonjour,

Voici un script AppleScript :

```
on open dossiers_cr2_jpg
    if (count dossiers_cr2_jpg) = 2 then
        set inf1 to info for (item 1 of dossiers_cr2_jpg) without size
        set inf2 to info for (item 2 of dossiers_cr2_jpg) without size
        if not (folder of inf1) or not (folder of inf2) then my alertDial()
        if name of inf1 = "Capture" then
            set captFolder to item 1 of dossiers_cr2_jpg
            set jpgFolder to item 2 of dossiers_cr2_jpg
        else if name of inf2 = "Capture" then
            set captFolder to item 2 of dossiers_cr2_jpg
            set jpgFolder to item 1 of dossiers_cr2_jpg
        else
            my alertDial()
        end if
        tell application "Finder"
            set parentFolder to container of captFolder -- le dossier parent du dossier "Capture"
            set selectsFolder to folder "Selects" of parentFolder -- le dossier de destination où seront déplacés les CR2
            repeat with i in (get files of jpgFolder)
                set nom to name of i
                set rawName to (text 1 thru -4 of nom) & "CR2" -- ceci remplace l'extension jpg par CR2 pour pouvoir déplacer le fichier raw
                try
                    move file rawName of captFolder to selectsFolder -- déplace le fichier CR2 du dossier "Capture" dans le dossier "Selects"
                end try
            end repeat
        end tell
    else
        my alertDial()
    end if
end open

on alertDial()
    display alert "Déposez  le dossier 'Capture' et le dossier des fichiers jpg sur cet Applet." buttons {"OK"} cancel button "OK"
end alertDial
```
Enregistre-le au format application.

Après il suffit de déposer les deux dossiers sur l'applet, le dossier dont le nom est "*Capture*" et le dossier du client qui contient les fichiers "*.jpg*"
Le script déplacera les fichiers *CR2* du dossier "Capture" (seulement ceux dont les noms correspond aux fichiers jpg du client).


----------



## Rayfresh (22 Février 2015)

C'est cool, merci beaucoup je vais regarder ça.


----------



## Rayfresh (22 Février 2015)

Excellent, ça marche nickel.
Merci encore

Petite question, est-ce qu'il est possible d'avoir une appli qui demande le dossier Capture et ensuite le dossier Selection client pour que ça soit plus facile de se rappeler de la méthode ? (même si la tienne est rapide).


----------



## JacqR (22 Février 2015)

Bonjour,



Rayfresh a dit:


> Excellent, ça marche nickel.
> Merci encore
> 
> Petite question, est-ce qu'il est possible d'avoir une appli qui demande le dossier Capture et ensuite le dossier Selection client pour que ça soit plus facile de se rappeler de la méthode ? (même si la tienne est rapide).


Si vous voulez que l'application affiche un dialogue à chaque fois, utiliser ce script.

```
set captFolder to choose folder with prompt "Sélectionnez le dossier 'Capture'."
set jpgFolder to choose folder with prompt "Sélectionnez le dossier client qui contient des fichiers JPEG."

tell application "Finder"
    set parentFolder to container of captFolder -- le dossier parent du dossier "Capture"
    set selectsFolder to folder "Selects" of parentFolder -- le dossier de destination où seront déplacés les CR2
    repeat with i in (get files of jpgFolder)
        set nom to name of i
        set rawName to (text 1 thru -4 of nom) & "CR2" -- ceci remplace l'extension jpg par CR2 pour pouvoir déplacer le fichier raw
        try
            move file rawName of captFolder to selectsFolder -- déplace le fichier CR2 du dossier "Capture" dans le dossier "Selects"
        end try
    end repeat
end tell
```
Lancez l'application pour exécuter le script, deux dialogues s'afficheront pour vous demandez l'emplacement des dossiers.



Si les dossiers sont toujours aux même emplacements, utiliser ce script :

```
property captFolder : missing value
property jpgFolder : missing value
if captFolder = missing value then set captFolder to choose folder with prompt "Sélectionnez le dossier 'Capture'."
if jpgFolder = missing value then set jpgFolder to choose folder with prompt "Sélectionnez le dossier client qui contient des fichiers JPEG."

tell application "Finder"
    set parentFolder to container of captFolder -- le dossier parent du dossier "Capture"
    set selectsFolder to folder "Selects" of parentFolder -- le dossier de destination où seront déplacés les CR2
    repeat with i in (get files of jpgFolder)
        set nom to name of i
        set rawName to (text 1 thru -4 of nom) & "CR2" -- ceci remplace l'extension jpg par CR2 pour pouvoir déplacer le fichier raw
        try
            move file rawName of captFolder to selectsFolder -- déplace le fichier CR2 du dossier "Capture" dans le dossier "Selects"
        end try
    end repeat
end tell
```
Ce script affichera les dialogues lorsque vous lancez l'application (seulement la première fois,  aucun dialogue ne s'affichera pour les autres fois).
Pour réinitialiser l'application (le script), il suffit de l'ouvrir dans l'éditeur de script, de compiler et d'enregistrer.


----------



## Rayfresh (23 Février 2015)

Super ! Merci beaucoup


----------



## Rayfresh (16 Mars 2015)

Un client me demande une seconde sélection d'après une liste de fichiers (même principe qu'avant).
J'aimerais pouvoir choisir le dossier de Destination plutôt que lui imposer le dossier "Select" et une option pour copier plutôt que deplacer les "Raw".

Est-ce possible ?


----------



## JacqR (16 Mars 2015)

Bonjour,


Oui, cela est possible.

```
set captFolder to choose folder with prompt "Sélectionnez le dossier 'Capture'."
set jpgFolder to choose folder with prompt "Sélectionnez le dossier client qui contient des fichiers JPEG."
set selectsFolder to choose folder with prompt "Sélectionnez le dossier de destination."
set copie to (button returned of (display dialog "Copier ou déplacer les fichiers RAW ?" buttons {"Copier", "Déplacer"} default button "Déplacer")) = "Copier"

tell application "Finder"
    repeat with i in (get files of jpgFolder)
        set nom to name of i
        set rawName to (text 1 thru -4 of nom) & "CR2" -- ceci remplace l'extension jpg par CR2 pour pouvoir déplacer ou copier le fichier raw
        try
            if copie then
                duplicate file rawName of captFolder to selectsFolder with replacing -- copie le fichier CR2 du dossier "Capture" dans le dossier de destination
            else
                move file rawName of captFolder to selectsFolder -- déplace le fichier CR2 du dossier "Capture" dans le dossier de destination
            end if
        end try
    end repeat
end tell
```

Edition : correction dans la ligne pour l'option (copier ou déplacer).


----------

