Obtener componentes (ruta y nombre de archivo) de la ruta de archivo POSIX

2

Dado:

~ / Desktop / Foo.scpt contiene:

(POSIX path of (path to me)) as text

Que devuelve:

  

/Users/[nombreusuariocrib/Desktop/Foo.scpt

¿Cómo obtengo la ruta /users/[username]/Desktop/ y el nombre de archivo Foo.scpt como partes individuales?

    
pregunta craig 09.09.2013 - 00:24

3 respuestas

6

Solo pregúntale a Finder que 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
    
respondido por el Matthieu Riegler 09.09.2013 - 01:00
1

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
    
respondido por el Kaydell 09.09.2013 - 02:39
1

Otra opción es usar delimitadores de elementos de texto:

set text item delimiters to "/"
POSIX path of (path to me)
text item -1 of result -- "Untitled.scpt"

Si la ruta puede terminar con una barra, puede usar 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 del objeto AppleScript (no local para la función), pero que yo sepa, no tiene que restaurar la propiedad de los delimitadores de elementos de texto si no confía más adelante en el script.

    
respondido por el user495470 09.09.2013 - 14:52

Lea otras preguntas en las etiquetas