J'ai passé la journée à faire plusieurs recherches et tentatives sur la façon de copier un fichier situé dans une application AppleScript dans le répertoire Root Application Support ( hdd -> Library -> Application Support
). Au départ, je pensais qu'il s'agissait d'un problème d'appel. do shell script
y administrator privileges
mais pour une raison quelconque, si j'ai un fichier situé dans une application AppleScript, j'essaie d'appeler ce fichier pour qu'il soit ajouté au support d'application, par exemple :
set foo to "Macintosh HD/Users/vader/someapp.app/Contents/Resources/Scripts/foobar.txt"
set bar to "Macintosh HD/Library/Application Support/"
do shell script "cp " & (quoted form of foo) & space & (quoted form of bar) with administrator privileges
Je l'ai réduit à la forme de base en ce qui concerne le chemin d'accès au dossier et au fichier, mais lorsque j'exécute la commande ci-dessus, j'obtiens un message d'erreur :
cp : Macintosh HD/Users/vader/someapp.app/Contents/Resources/scripts/foobar.txt : Non tel fichier ou répertoire
Je peux retourner vrai que le fichier existe dans l'application avec :
set foobar to POSIX path of (path to resource "foobar.txt" in directory "Scripts")
if not (exists foobar) then
return false
else
return true
end if
J'ai essayé avec :
tell application "Finder" to duplicate file (foo) to folder (bar)
mais ça n'a pas marché non plus.
Recherche lorsque j'ai essayé de supprimer le fichier après l'avoir ajouté manuellement (oui, j'ai des droits d'administrateur sur ma boîte) :
J'ai fait des recherches dans plusieurs domaines pour voir comment mettre en œuvre la demande d'autorisations à l'aide de administrator privileges
mais sans succès :
- Impossible de supprimer un répertoire via AppleScript
- AppleScript : faire correspondre et supprimer des fichiers dans un dossier
- Supprimer automatiquement les dossiers temporaires ~/Bibliothèque/Application Support
- Supprimer les dossiers s'ils existent et supprimer
- Applescript oe shellscript pour supprimer le fichier de configuration ?
- Supprimez des fichiers avec AppleScript dans la corbeille ou de manière permanente
Voici les tentatives suivantes que j'ai essayées :
Événements système AppleScript :
tell application "System Events" to delete file appWithPath
faire des tentatives d'obus :
tentative 1
do shell script "rm -f " & appNamewithQuotedFormPath with administrator privileges
tentative 2
do shell script "find " & quotedPathToDirectory & " -name \"" & applicationName & "\" -type f -delete" with administrator privileges
Ça ne marchait toujours pas et j'ai vérifié avec :
do shell script "echo " & appNamewithQuotedFormPath with administrator privileges
Après avoir creusé dans l'éditeur de script, j'ai découvert que j'obtenais -10004 error
alors j'ai fait des recherches :
J'ai donc déplacé l'ajout et la suppression du fichier dans Application Support vers un gestionnaire qui n'avait pas de bloc try, mais toujours rien.
Pensant que cela pouvait être un problème avec les privilèges utilisés, j'ai essayé tous les paramètres suivants utilisés avec Scripting Additions
:
Dans une application AppleScript, comment puis-je ajouter y supprimer un fichier qui existe dans l'application vers le répertoire racine du support de l'application ?
EDITAR:
Après d'autres tests, j'ai supprimé l'utilisation de Macintosh HD
y el do shell script
fonctionnerait, mais je ne comprends pas pourquoi cela ferait échouer le script. Pourquoi l'ajout de Macintosh HD
au chemin provoque l'erreur du script ?