Alias automatique avec Automator

planete.gonz

Nouveau membre
24 Mars 2008
8
0
32
Bonjour,

Je souhaite faire un script automator qui me créer un Alias de tous les fichiers du Dossier 1 pour les copier dans le dossier 2 en écrasant ceux qui sont déjà la. (Afin d'éviter des doublons).

J'ai pour cela créé le script suivant (voir pièce jointe) mais il ne fonctionne pas, quelqu'un aurait-il une astuce à me donner pour effectuer cette opération ?

Erreur obtenue : L'opération a échouée : Erreur Cocoa 1

Merci de votre aide
Cordialement

Adrien
 

zeltron54

Membre d’élite
29 Mars 2008
2 188
341
Lorraine
Bonjour,

J'ai du mal à cerner la demande!
- Dans ton dossier original tu n'as que des fichiers ou des fichiers et des dossiers ?
Et tu veux, dans un autre dossier des alias de tous les fichiers contenu, y compris dans les sous-dossiers (si existant) ?
S' il y a des sous dossiers, tous les alias des fichiers contenus seront alors au premier niveau de ton dossier destination ! (le dossier destination ne contenant pas d' alias de dossier).

- donc le script doit te demander de choisir le dossier original puis le dossier destination et effectuer la création des alias (avec écrasement des alias existant)

Je me rends compte n l' écrivant que ce n'est pas évident à expliquer :D

J' attends confirmation.
 

zeltron54

Membre d’élite
29 Mars 2008
2 188
341
Lorraine
Je t'ai fait un petit applescript qui fait ce que je pense avoir compris voir poste #3 juste au dessus.
Dis moi si cela te convient.

Bloc de code:
tell application "Finder"
    set DossierOrigin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers originaux"
   
    set DossierDest to choose folder with prompt "Sélectionnez le dossier contenant les alias à mettre à jour"
    set DossierDest to quoted form of POSIX path of DossierDest
   
    my inspecter(DossierOrigin, DossierDest) -- appel routine inspecter
end tell

on inspecter(DossierOrigin, DossierDest)
    tell application "Finder"
       
        -- traitement des fichiers :
        set les_fichiers to files of DossierOrigin --récupère tous les fichiers du dossier
        repeat with chaque_fichier in les_fichiers -- répète avec chaque fichier du dossier en cour
           
            -- traitement d'un fichier
           
            set chaque_fichier to chaque_fichier as string
            set chaque_fichier to quoted form of POSIX path of chaque_fichier
           
            do shell script "ln -s -f " & chaque_fichier & " " & DossierDest
           
        end repeat -- fichier suivant
       
        -- traitement des dossiers :
        set les_dossiers to folders of DossierOrigin
        repeat with chaque_dossier in les_dossiers -- dossier suivant
            my inspecter(chaque_dossier, DossierDest) -- appel pour dossier suivant
        end repeat
    end tell
end inspecter -- fin routine inspecter

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