IPB

Bienvenue invité ( Connexion | Inscription )

> Comment mettre à jour des alias en nombre après changement de disque [re-résolu]
Options
schoan
posté 5 Aug 2009, 17:54
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 913
Inscrit : 8 Jan 2003
Lieu : dans ma bibliothèque
Membre no 5 517



Bonjour,

J'ai élaboré un système de classement de documents pdf et d'autres fichiers en créant une série de dossiers et sous-dossiers sur un disque dur externe (/Volumes/nom_du_disque/...).

En copiant le contenu de ce disque sur mon nouveau disque dur, les alias ne sont plus valides.

J'aimerais changer les liens de ces centaines de fichiers automatiquement.

Quelqu'un a une idée ?

Ce message a été modifié par schoan - 9 Aug 2009, 23:48.


--------------------
iMac 27'' 3.4 Ghz Intel Core i7 (ex 2.7 - i5) sous OS X.10.13.6 ; Macbook Air 13,3'' sous OS X 10.14.6 ; Macbook pro 15'' 2.16 GHz Intel Core 2 Duo, 2x2 Ghz PowerPC G5 - CS3, CS4 et CS6 et des livres, beaucoup de livres.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
schoan
posté 21 Aug 2014, 22:59
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 913
Inscrit : 8 Jan 2003
Lieu : dans ma bibliothèque
Membre no 5 517



merci pour ta réponse, mais ça ne fonctionne toujours pas.

Il me semble que le problème vient de la ligne

Code
set oldOriginal to (load resource 0 type "alis" from f) as string


j'ai essayé d'afficher le contenu de oldOriginal et la variable est vide. De même j'ai essayé d'attribuer une valeur fixe à newOriginal mais l'alias n'est pas modifié...

J'ai pourtant mis à jour satimage.

Qu'en dis-tu ?


--------------------
iMac 27'' 3.4 Ghz Intel Core i7 (ex 2.7 - i5) sous OS X.10.13.6 ; Macbook Air 13,3'' sous OS X 10.14.6 ; Macbook pro 15'' 2.16 GHz Intel Core 2 Duo, 2x2 Ghz PowerPC G5 - CS3, CS4 et CS6 et des livres, beaucoup de livres.
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 22 Aug 2014, 23:53
Message #3





Guests






Bonsoir,

Citation (schoan @ 21 Aug 2014, 17:59) *
Il me semble que le problème vient de la ligne

Code
set oldOriginal to (load resource 0 type "alis" from f) as string

Oui, load resource de l'osax Satimage ne fonctionne plus sur les alias brisés, put ressource ne fonctionne plus (alias brisé ou normal).

Voici une alternative, un script "Applescript-Cocoa Applet" (le script utilise du code Objective-C), ce script créera un nouvel alias, si cela réussi, il écrasera l'alias brisé :

Ouvre l'application "Éditeur AppleScript"
Sélectionne dans le menu "Fichier" --> "Nouveau à partir du modèle" --> "Applescript-Cocoa Applet"
Code
use framework "/System/Library/Frameworks/Foundation.framework"
use scripting additions
global pKey, tBook, fileManager, fOpt

set dossiermaitre to "Mes documents importants" --*** le nom du dossier déplacé sur l'autre volume ***** c'est important de le changer  par le nom de votre dossier déplacé. ********-------------
set pKey to {(current application's NSURLPathKey)}
set tBook to {(current application's NSURLBookmarkCreationSuitableForBookmarkFile)}
set fOpt to {(current application's NSFileManagerItemReplacementUsingNewMetadataOnly)}
tell current application's NSFileManager to set fileManager to defaultManager()

set the_vol to (choose folder with prompt "Sélectionnez le nouveau volume.")
if kind of (info for the_vol without size) is "Volume" then -- c'est un volume
     set doosierAlias to choose folder with prompt "Sélectionnez le dossier qui contient des alias à modifier."
     set the_vol to the_vol as string
     set the_vol_Unix to POSIX path of the_vol
     set dossiermaitre_Unix to (POSIX path of dossiermaitre) & "/"
     set errorList to {}
    
     set r to do shell script "/usr/bin/mdfind -onlyin  " & (quoted form of POSIX path of doosierAlias) & " 'kMDItemKind == \"Alias\"'"
     if r is not "" then repeat with i in (get paragraphs of r)
          try
               my setOrigPath(i as text, dossiermaitre_Unix, the_vol_Unix)
          on error
               set end of errorList to (i as text)
          end try
     end repeat
     set tc to (count errorList)
     activate
     if tc > 0 then
          set tid to text item delimiters
          set text item delimiters to return
          set errorList to errorList as text
          set text item delimiters to tid
          set the clipboard to errorList
          display dialog "Vous avez " & tc & " alias qui n'ont pas été modifiés. " & return & return & "Le résultat est dans le presse-papier" buttons "OK"
     else
          display dialog "Terminé" buttons "OK"
     end if
     tell me to quit
end if

on setOrigPath(pPath, p, v)
     set aliasURL to current application's NSURL's fileURLWithPath:pPath
     set bookmarkData to current application's NSURL's bookmarkDataWithContentsOfURL:aliasURL |error|:(missing value)
     set values to current application's NSURL's resourceValuesForKeys:pKey fromBookmarkData:bookmarkData
     set tpath to (values's objectForKey:(item 1 of pKey)) as text -- on obtient le chemin de l'original brisée
     set n to (the offset of p in tpath) + 1
     set newOriginal to v & (text n thru -1 of tpath) -- ce sera le nouveau chemin de l'original
     set newURL to current application's NSURL's fileURLWithPath:newOriginal
     set tbookmarkData to newURL's bookmarkDataWithOptions:tBook includingResourceValuesForKeys:(missing value) relativeToURL:(missing value) |error|:(missing value)
     set newAliasURL to current application's NSURL's fileURLWithPath:(pPath & "___copy__")
     current application's NSURL's writeBookmarkData:tbookmarkData toURL:newAliasURL options:0 |error|:(missing value) -- création de l'alias
     if the result then -- création de l'alias réussi, on remplace l'alias brisé par le nouvel alias
          fileManager's replaceItemAtURL:aliasURL withItemAtURL:newAliasURL backupItemName:(missing value) options:fOpt resultingItemURL:(missing value) |error|:(missing value)
     else
          error
     end if
end setOrigPath


Un "Applescript-Cocoa Applet" ne fonctionne pas en tant que script mais comme une application, donc, si vous pressez le bouton "Exécuter" dans l'Éditeur AppleScript, un dialogue s'affichera, il suffit de cliquer sur le bouton "Lancer l'application".

Comme il fonctionne comme une application, il n'y a aucun résultat dans la fenêtre de l'Éditeur AppleScript, donc s'il y a des erreurs, le résultat sera dans le presse-papiers.



Ce message a été modifié par JacqR - 22 Aug 2014, 23:59.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- schoan   Comment mettre à jour des alias en nombre après changement de disque [re-résolu]   5 Aug 2009, 17:54
- - EricaL**   Bonjour, Est-ce que la hiérarchie du dossier ma�...   7 Aug 2009, 16:32
- - schoan   Salut, merci pour ta réponse ! c'est ex...   7 Aug 2009, 16:41
|- - EricaL**   Bonjour, Le script à fonctionné. Mais, il a ré...   9 Aug 2009, 23:44
|- - parcequejelevauxbien   Citation (EricaL** @ 10 Aug 2009, 00:44) ...   10 Aug 2009, 19:43
- - schoan   Merci encore EricaL** pour ton aide et pour le tem...   9 Aug 2009, 23:58
- - schoan   Je déterre ce topic car le script ne fonctionne p...   21 Aug 2014, 03:32
|- - JacqR   Bonsoir, Citation (schoan @ 20 Aug 2014, 22...   21 Aug 2014, 22:37
- - schoan   merci pour ta réponse, mais ça ne fonctionne tou...   21 Aug 2014, 22:59
|- - JacqR   Bonsoir, Citation (schoan @ 21 Aug 2014, 17...   22 Aug 2014, 23:53
- - schoan   merci pour ce nouveau code ! j'ai testé ...   23 Aug 2014, 17:19
|- - JacqR   Bonsoir, Citation (schoan @ 23 Aug 2014, 12...   24 Aug 2014, 02:26
|- - schoan   Citation (JacqR @ 24 Aug 2014, 03:26) Qua...   24 Aug 2014, 03:26
|- - JacqR   Citation (schoan @ 23 Aug 2014, 22:26) Me...   24 Aug 2014, 06:26
- - schoan   magnifique, ça marche ! j'avais modifié...   24 Aug 2014, 17:01
- - schoan   encore un petit problème à résoudre... J'a...   24 Aug 2014, 18:00
|- - JacqR   Bonsoir, Citation (schoan @ 24 Aug 2014, 13...   25 Aug 2014, 01:02
- - schoan   c'est tout bon, j'avais un conflit entre l...   25 Aug 2014, 01:56
- - schoan   Je remonte ce sujet car j'ai de nouveau une qu...   24 Jun 2019, 00:33
- - baron   Bonjour schoan, Les principaux contributeurs à ...   24 Jun 2019, 13:21
- - schoan   Salut Baron, Ça fait longtemps... Avec grand ...   24 Jun 2019, 13:24
- - baron   C'est toujours un plaisir !   24 Jun 2019, 13:41
- - schoan   Voilà, j'ai trouvé la solution : une fonctio...   25 Jun 2019, 23:34
- - Bartaba87   Bonjour, Je réactive ce sujet car je suis une bi...   22 Mar 2021, 16:06
|- - baron   Citation (Bartaba87 @ 22 Mar 2021, 16:06)...   22 Mar 2021, 20:00
|- - Bartaba87   Citation (baron @ 22 Mar 2021, 20:00) Cit...   24 Mar 2021, 21:21
- - Bartaba87   Merci beaucoup de la réponse rapide ! Je n’...   24 Mar 2021, 17:41
- - baron   Je ne suis pas vraiment plus expérimenté que toi...   25 Mar 2021, 00:12
- - Bartaba87   Baron, Encore merci. J'ai réussi avec tes ...   25 Mar 2021, 13:40
- - baron   Super ! Merci de ton retour d'informat...   25 Mar 2021, 13:59


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 2nd June 2024 - 02:43