1 pièce(s) jointe(s)
Lire et récupérer l'information "Original" d'un fichier de type Alias
Bonjour,
Depuis la dernière mise à jour de Sierra et jusqu'à la dernière de High Sierra, j'ai eu de gros soucies avec mes alias, et là avec la dernière mise à jour de sécurité de Mojave (la faille FaceTime) je m'aperçois que cela recommence.
Les soucies était de l'ordre:
_ des liens qui changeaient tous seuls;
_ des mauvaises directions;
_ et jusqu'à des liens qui pointaient sur eux même (le système n'aime pas du tout,)
bref manuellement je suis arrivait à en réparer 99% sur 12000 alias, et depuis quinze jours j'ai fait une app en AppleScript et j'ai fini par réparer le pourcentage qui restait (je ne connais que très peu de chose au code,) enfin je le croyais.
Un extrait du code que j'utilise et qui me permet de récupérer l'URL.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| use framework "/System/Library/Frameworks/Foundation.framework"
use scripting additions
global pKey, tBook, fileManager, fOpt
set pKey to {(current application's NSURLPathKey)} # => {«class ocid» id «data optr0000000038461C93FF7F0000»}
set tBook to {(current application's NSURLBookmarkCreationSuitableForBookmarkFile)} # => {1024}
set fOpt to {(current application's NSFileManagerItemReplacementUsingNewMetadataOnly)} # => {1}
tell current application's NSFileManager to set fileManager to defaultManager() # => «class ocid» id «data optr000000001004780000600000»
set Chemin_Unix to "/Volumes/Philat/Philatélie_01/Philatélie/Roulette/000 - Scan/0T001_Sc10r/18780501_004400_19100501_PADI_10c_100g_SC_18760101 alias" as text
set aliasURL to current application's NSURL's fileURLWithPath:Chemin_Unix
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 AliasPath to (values's objectForKey:(item 1 of pKey)) as text -- on obtient le chemin de l'Alias |
, ensuite je contrôle l'existence de l'URL et la bonne direction du pointeur, de l'aide de la variable AliasPath.
Pour exemple, dans cette variable "AliasPath" pour le "Chemin_Unix" que je lui est donné j'ai comme résultat :
Code:
1 2
| Valeur de AliasPath
"/Volumes/Philat/Philatélie_01/Philatélie/Roulette/200 - Tarifs/04 - Imprimés - Papiers d'Affaire - Factures et Assimilés - 004xxx - Intérieur/18780501/04 - Imprimés/18780501_004400_19100501_PADI_10c_100g_SC_18760101" |
ce qui est la bonne adresse.
Mais là ou le bas blesse, c'est quand je vais lire les informations (Cmd i) du fichier ou si je fait un double-clic dessus sur "18780501_004400_19100501_PADI_10c_100g_SC_18760101 alias", je suis envoyé à une autre adresse (voir l'image qui suit)
Pièce jointe 448716
D'où ma question dans le titre, est-il possible de récupérer l'adresse qu'il y a dans "Original" ?
D'avance merci pour vos réponses et aide,
Jean-Luc