2 votos

Obtener los componentes (ruta de acceso y nombre de archivo) de POSIX filepath

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?

6voto

Satanicpuppy Puntos 4902

Simplemente pregunte Buscador él sabe cómo hacerlo :)

tell application "Finder"
     set parentpath to POSIX path of (parent of (path to me) as string)
     set filename to name of (path to me)

     display dialog parentpath
     display dialog filename
 end tell

2voto

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.

1voto

Kaydell Puntos 229

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.com

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.

Powered by:

X