Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher le fichier sous Finder en Apple Script ?

11 réponses
Avatar
Souris 8-)
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...

10 réponses

1 2
Avatar
Souris 8-)
Le 4 septembre 2021 Í  17:08, Souris 8-) a écrit :
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&gt;
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é ?
--

bon j'ai demandé sur le forum de Xojo mon environnement de développement...
--
--
/ 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...
Avatar
josephb
<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&gt;
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…
--
J. B.
Avatar
josephb
M.V. wrote:
Pas chez moi (Mojave) et ce qui suit fonctionne comme attendu :

Possible que ça ait été modifié depuis El Cap o͹ je suis toujours.
Chez moi, s'il y a une palanquée de fenêtres de diverses applications
(dont des fenêtres du Finder) en avant plan qui occupent tout l'espace
du moniteur,
la commande
tell application "Finder"
reveal (cheminFichier)
end tell
ne ramène pas l'application Finder en premier plan et la fenêtre du
dossier parent reste cachée, laissant croire qua le commande a échoué
sans message d'erreur.
--
J. B.
Avatar
Souris 8-)
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&gt;
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 ;-)
--
--
/ 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...
Avatar
josephb
<Souris> wrote:
Xojo donne le chemin complet mais pas jusque au disque dur, c'est le seul truc
qui manque, il s'arrête a "/User"

C'est /User/ ou /Users/ avec un "s" Í  la fin que te donne Xojo ?
Si Xojo donne (sous Mac) le chemin sous la forme posix (les "/"),
/Users/DossierDeDépart/Desktop/leFichier.txt
alors sache que le premier slash représente le disque dur.
pour t'en convaincre copie et exécute ce petit script et lis les
réponses dans l'éditeur de script :
ILe script va te demander de choisir un fichier (peu importe o͹ et
lequel tu choisiras), effectura les conversions réciproques
hfs —> posix —> hfs
en affichant (via les commandes "log") les syntaxes respectives du
chemin absolu du fichier choisi
************
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. B.
Avatar
Souris 8-)
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 ?
--
--
/ 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...
Avatar
josephb
<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&gt;
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
--
J. B.
Avatar
Souris 8-)
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&gt;
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
--
--
/ 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...
Avatar
Souris 8-)
Le 5 septembre 2021 Í  14:39, Souris 8-) a écrit :
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&gt;
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"

correction 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
--

--
--
/ 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...
Avatar
kurtz le pirate
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
1 2