Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Afficher le fichier sous Finder en Apple Script ?

36 views
Skip to first unread message

Souris 8-)

unread,
Sep 3, 2021, 7:19:42 AM9/3/21
to
Afficher le fichier sous Finder en Apple Script ?

Bonjour,

quelqu'un sait comment faire avec un chemin :

"Disque Dur:Bureau:Dossier Truc:Fichier.txt" ?

ou avec des "/"

Merci d'avance ;-)

suivi programmation

--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...

Souris 8-)

unread,
Sep 4, 2021, 10:38:14 AM9/4/21
to
Le 4 septembre 2021 à 16:16, Joseph-B a écrit :


> Bonjour,
> <Souris> wrote:
>
>> Afficher le fichier sous Finder en Apple Script ?
>> "Disque Dur:Bureau:Dossier Truc:Fichier.txt" ?
>>
>> ou avec des "/"
>
> la commande applescript du Finder à utiliser pour afficher et
> sélectionner un document est [reveal] et fonctionne uniquement avec une
> définition HFS (les deux points) du chemin du fichier,
>
> tell application "Finder"
> reveal "Disque Dur:Bureau:Dossier Truc:Fichier.txt"
> activate
> end tell
>
> si l'on a une définition posix du chemin (avec les slash) il faut
> revenir à un chemin HFS par Applescript lui-même * avant * d'appeler le
> Finder (qui ne sait pas faire la transformation)
>
> Par exemple
> set cheminPosix to "/Disque Dur/Bureau/Dossier Truc/Fichier.txt"
> set filePath to posix file (cheminPosix) -- transformation posix--> HFS
> tell application "Finder"
> activate
> reveal filePath
> end tell
>
>
> Aller voir dans la doc d'Applescript les subtilités assez piégeuses
> autour de ces définitions de chemin HFS ou Posix, et comment passer de
> l'une à l'autre.
>
> la commande *activate* pour le Finder est nécessaire pour être sûr que
> la fenêtre du dossier contenant le fichier sera bien au premier plan à
> l'issue de l'exécution de la commande [reveal].
>

Un Grand Merci!

je vais tester...

je fait le test et je te tien au courant ;-)

Souris 8-)

unread,
Sep 4, 2021, 11:08:35 AM9/4/21
to
Le 4 septembre 2021 à 16:16, Joseph-B a écrit :


> Bonjour,
> <Souris> wrote:
>
>> Afficher le fichier sous Finder en Apple Script ?
>> "Disque Dur:Bureau:Dossier Truc:Fichier.txt" ?
>>
>> ou avec des "/"
>
> la commande applescript du Finder à utiliser pour afficher et
> sélectionner un document est [reveal] et fonctionne uniquement avec une
> définition HFS (les deux points) du chemin du fichier,
>
> tell application "Finder"
> reveal "Disque Dur:Bureau:Dossier Truc:Fichier.txt"
> activate
> end tell
>
> si l'on a une définition posix du chemin (avec les slash) il faut
> revenir à un chemin HFS par Applescript lui-même * avant * d'appeler le
> Finder (qui ne sait pas faire la transformation)
>
> Par exemple
> set cheminPosix to "/Disque Dur/Bureau/Dossier Truc/Fichier.txt"
> set filePath to posix file (cheminPosix) -- transformation posix--> HFS
> tell application "Finder"
> activate
> reveal filePath
> end tell
>
>
> Aller voir dans la doc d'Applescript les subtilités assez piégeuses
> autour de ces définitions de chemin HFS ou Posix, et comment passer de
> l'une à l'autre.
>
> la commande *activate* pour le Finder est nécessaire pour être sûr que
> la fenêtre du dossier contenant le fichier sera bien au premier plan à
> l'issue de l'exécution de la commande [reveal].
>

bon je n'arrive pas, voilà le chemin que j'envoi :

<https://prnt.sc/1r7wjlv>

j'ai fait ce applescript :

on run {Chemin}
tell application "Finder"
reveal (Chemin)
activate
end tell
end run

qui est appelé par Xojo c'est mon environnement de développement et ce de cette
manière :

Dim path As String

if BaseTickets.SelectedRowIndex > -1 then
If TargetMacOS Then
path =
StatistiquesTicketsdeCaisse.ListeDesDossiersSource(val(BaseTickets.Cell(BaseTickets.SelectedRowIndex,26)))
+ "/" + BaseTickets.Cell(BaseTickets.SelectedRowIndex,21)
path = path.ReplaceAll("/", ":")
'messagebox path
AfficheFichierDansFinder(path)
End If
end if

j'utilise de cette façon : AfficheFichierDansFinder(path)

est ce que c'est le chemin qui n'est pas bon ou la façon de l'avoir développé ?

Souris 8-)

unread,
Sep 4, 2021, 11:39:32 AM9/4/21
to
bon j'ai demandé sur le forum de Xojo mon environnement de développement...

Souris 8-)

unread,
Sep 4, 2021, 1:13:58 PM9/4/21
to
Le 4 septembre 2021 à 16:16, Joseph-B a écrit :


> Bonjour,
> <Souris> wrote:
>
>> Afficher le fichier sous Finder en Apple Script ?
>> "Disque Dur:Bureau:Dossier Truc:Fichier.txt" ?
>>
>> ou avec des "/"
>
> la commande applescript du Finder à utiliser pour afficher et
> sélectionner un document est [reveal] et fonctionne uniquement avec une
> définition HFS (les deux points) du chemin du fichier,
>
> tell application "Finder"
> reveal "Disque Dur:Bureau:Dossier Truc:Fichier.txt"
> activate
> end tell
>
> si l'on a une définition posix du chemin (avec les slash) il faut
> revenir à un chemin HFS par Applescript lui-même * avant * d'appeler le
> Finder (qui ne sait pas faire la transformation)
>
> Par exemple
> set cheminPosix to "/Disque Dur/Bureau/Dossier Truc/Fichier.txt"
> set filePath to posix file (cheminPosix) -- transformation posix--> HFS
> tell application "Finder"
> activate
> reveal filePath
> end tell
>
>
> Aller voir dans la doc d'Applescript les subtilités assez piégeuses
> autour de ces définitions de chemin HFS ou Posix, et comment passer de
> l'une à l'autre.
>
> la commande *activate* pour le Finder est nécessaire pour être sûr que
> la fenêtre du dossier contenant le fichier sera bien au premier plan à
> l'issue de l'exécution de la commande [reveal].
>

c'est bon merci ton code est juste ça fonctionne j'ai du ajouter le nom de mon
disque dur en dur en début chemin, peut être que le Posix le fait de lui même ? je
n'ai pas essayez, si c'est le cas tu veux bien me le dire j'adapterait le code pour
que ce soit plus propre et que ça fonctionne quelque soit le nom du disque dur...

merci ;-)

Souris 8-)

unread,
Sep 4, 2021, 3:15:43 PM9/4/21
to
Le 4 septembre 2021 à 20:31, Joseph-B a écrit :


> <Souris> wrote:
>
>> ton code est juste ça fonctionne j'ai du ajouter le nom de mon
>> disque dur en dur en début chemin, peut être que le Posix le fait
>> de lui même ?
>
> Oui il faut donner le chemin complet du fichier.
> Je suis perplexe pour t'aider davantage parce que je ne comprends pas la liaison que tu fais entre
> Applescript et Xojo (issu du RealBasic), donc avec une syntaxe spécifique que je ne connais pas du
> tout (même si développé jadis en VisualBasic pour Excel).
>
> Néanmoins et pour rester en ApplsScript, je te conseille d'aller lire cette page de la doc en ligne
> <https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-DontLinkElementID_771>
> qui te donne les méthodes pour récupérer le chemin jusqu'à un dossier déterminé.
>
> Pour reprendre ton exemple, si tu as décidé que le fichier "Fichier.txt" doit se trouver sur le
> Bureau de l'utilisateur de ton application, dont bien sûr tu ne peux pas connaître le nom de son
> disque dur, il faut procéder de la façon suivante :
> récupérer le chemin vers le Bureau et y concatener le nom du fichier cible
>
> set cheminBureau to (path to desktop) as string
> set cheminFichier to cheminBureau & "Fichier.txt"
> tell application "Finder"
> activate
> reveal (cheminFichier)
> end tell
>
> Enfin, je serais bien étonné que Xojo ne donne pas accès nativement dans son code à une méthode
> similaire à celle que je décris ci-dessus, sans avoir besoin de passer par Applescript.
>
> Bonne chance pour la suite…
>

Xojo donne le chemin complet mais pas jusque au disque dur, c'est le seul truc qui
manque, il s'arrête a "/User"

bon comme c'est une application a usage personnel, pour la gestion de mes scanne de
tickets de caisse ce n'est pas trop grave j'ai mis en début de chemin en dur le nom
de mon disque dur...

mais bon j'aime bien faire du code propre, c'est juste un problème de ce genre qui
me ferait chercher plus loins...

merci pour l'encouragement ;-)

Souris 8-)

unread,
Sep 5, 2021, 5:28:14 AM9/5/21
to
Le 5 septembre 2021 à 01:48, Joseph-B a écrit :


> set HFSPathToDesktop to ((choose file) as string)
> log HFSPathToDesktop
> set posixPathToDesktop to (POSIX path of HFSPathToDesktop)
> log posixPathToDesktop
> set NewHFSPathToDesktop to POSIX file (posixPathToDesktop)

j'ai vraiment des difficulté avec ce langage qu'est Apple Script!

je te pose cette question, devrais-je envoyer au script le chemin avec des "/" et
le convertir dans le script avec posxi pour avoir le nom du disque dur dans le
chemin ?

et si oui quelle ligne de programme dois-je faire pour cette conversion ?

Souris 8-)

unread,
Sep 5, 2021, 8:39:49 AM9/5/21
to
Le 5 septembre 2021 à 14:29, Joseph-B a écrit :


> <Souris> wrote:
>
>> je te pose cette question, devrais-je envoyer au script le chemin avec
>> des "/" et le convertir dans le script avec posxi pour avoir le nom du
>> disque dur dans le chemin ?
>
> AppleScript est passé à la notation unix (posix) des chemins depuis OS X
> et par conséquent je te conseille de l'utiliser de manière générale.
> Toutefois, un certain nombre de commandes sont restées "historiquement"
> (paresse et négligence bien regrettables pour un domaine considéré comme
> anecdotique par Apple) avec la notation hfs des chemins.
> Donc c'est quand tu devras manipuler de telles commandes (comme "reveal"
> pour le Finder) que tu devras ponctuellement convertir le chemin posix
> en chemin hfs.
> Oui, ça n'est vraiment pas "user friendly".
>
> Si tu ne fais l'effort de lire et essayer de comprendre cette double
> notation des chemins dans Applescript, tu ne t'en sortiras jamais :
> <https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html#//apple_ref/doc/uid/TP40000983-CH218-SW28>
>
>
> cela dit, si tu as vraiment besoin de connaître le nom du disque de
> démarrage, cette ligne va te le retourner :
>
> tell application "System Events" to get name of startup disk
>
> ou celle-ci :
> tell application "Finder" to get name of startup disk
>

ok merci, mais sur tes exemples je ne vois pas comment est stocké le nom du disque,
je ne vois pas de mise du résultat dans une variable...

j'ai utilisé au long de ma vie différents langages mais Apple Script je ne pige
rien...

j'ai ce script :

on run {Chemin}
tell application "Finder"
reveal Chemin
activate
end tell
end run

si j'envoi dans le paramètre chemin, un chemin "/user/erich/etc"

que dois-je ajouter à ce script pour que cette variable chemin contienne le nom du
disque de démarrage en début de chaine dans la variable chemin ?

genre :

on run {Chemin}
tell application "Finder"
reveal NomDisque + Chemin
activate
end tell
end run

mais comment mettre le nom du disque dans cette variable NomDisque ?

je te l'ai dis je suis nul en Apple Script :-D

Souris 8-)

unread,
Sep 5, 2021, 8:42:14 AM9/5/21
to
correction un chemin : ":user:erich:etc"

kurtz le pirate

unread,
Sep 5, 2021, 12:30:05 PM9/5/21
to
On 05/09/2021 14:39, Souris 8-) wrote:
> mais comment mettre le nom du disque dans cette variable NomDisque ?

Si tu travail dans ton "home directory" tu as une variable système faite
pour ça : <home folder>

Par exemple :

set applescript_path to path to home folder
set posix_path to POSIX path of applescript_path

display dialog (">> applescript path : " & (applescript_path as text) &
"/n>> posix path : " & (posix_path as text))


affiche un dialogue avec le chemin du home directory aux deux formats.




--
kurtz le pirate
compagnie de la banquise

Souris 8-)

unread,
Sep 5, 2021, 12:42:35 PM9/5/21
to
je commence à comprendre un peu la syntaxe de Apple Script, mais c'est pas très
clair faut que je m'habitue...

cela dis j'ai juste besoin du nom du Disque, le chemin home ne m'intéresse pas ça
fait redondance dans le chemin que j'ai qui commence par ":user:etc"

au lieu de home folder si je veux le nom du disque je fait quoi ?

Souris 8-)

unread,
Sep 5, 2021, 4:11:34 PM9/5/21
to
Le 5 septembre 2021 à 20:57, Joseph-B a écrit :


> <Souris> wrote:
>
>> >
>> mais comment mettre le nom du disque dans cette variable NomDisque ?
>
> pour attribuer une valeur à une variable il faut utiliser le mot clé
> "set"
>
> reprenons l'exemple d'un fichier que tu as sur le bureau et appelé
> "Exemple.txt"
> son chemin HFS va être de la forme
> NameBootDisk:Users:Home:Desktop:Exemple.txt
> et pour le mettre dans une variable dont le nom serait "PathExemple", la
> commande sera
>
> set PathExemple to "NameBootDisk:Users:Home:Desktop:Exemple.txt"
>
> famliarise-toi avec cela en regardant le résultat de la ligne ci-dessous
> à exécuter dans l'éditeur de script, qui te demandera de choisir un
> fichier. Fais-le sur plusieurs fichiers à divers endroits pour
> comprendre le chemin (qui ici sera sous notation HFS)
>
> set PathExemple to (choose file) as text
>
>
> pour mettre le nom du Disque de démarrage dans la variable [NomDisque]:
>
> tell application "Finder"
> set NomDisque to get name of startup disk
> end tell
>

merci beaucoup, je vais garder ce fils sous le coude, il y a de précieuses
informations pour un débutant en Apple Script...

bonne soirée ;-)
0 new messages