Dado:
~/Desktop/Foo.scpt contiene:
(POSIX path of (path to me)) as text
Que devuelve:
/Users/[nombre de usuario]/Desktop/Foo.scpt
¿Cómo se obtiene la ruta /users/[username]/Desktop/
y nombre de archivo Foo.scpt
como piezas individuales?
Dado:
~/Desktop/Foo.scpt contiene:
(POSIX path of (path to me)) as text
Que devuelve:
/Users/[nombre de usuario]/Desktop/Foo.scpt
¿Cómo se obtiene la ruta /users/[username]/Desktop/
y nombre de archivo Foo.scpt
como piezas individuales?
Otra opción es el uso de un elemento de texto delimitadores:
set text item delimiters to "/"
POSIX path of (path to me)
text item -1 of result -- "Untitled.scpt"
Si la ruta de acceso puede terminar con una barra, puede utilizar un controlador como este:
on basename(x)
if x is "/" then return "/"
if item -1 of x is "/" then set x to text 1 thru -2 of x
set text item delimiters to "/"
text item -1 of x
end basename
basename("/dir1/dir2/file.txt") -- "file.txt"
basename("/dir1/") -- "dir1"
basename("/dir1/dir2/") -- "dir2"
basename("/dir1/dir2") -- "dir2"
basename("/") -- "/"
Tenga en cuenta que text item delimiters
es una propiedad de la AppleScript objeto (no es local a la función), pero hasta donde yo sé, usted no tiene que restaurar el elemento de texto delimitadores de la propiedad si usted no confía en él más adelante en la secuencia de comandos.
Esto debería funcionar:
-- This script returns the full path to the directory that this script is running in
-- get the full path to be split
set pathToMe to POSIX path of (path to me as text)
-- get the path to the directory
set script1 to "dirname '" & pathToMe & "'"
set dirPath to do shell script script1
-- get the file name
set script2 to "basename '" & pathToMe & "'"
set fileName to do shell script script2
-- display the results
display dialog "Directory Path: " & dirPath & return & return & "File Name: " & fileName
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.