2 votes

Obtenir les composants (chemin et nom de fichier) du chemin de fichier POSIX

Étant donné :

~/Desktop/Foo.scpt contient :

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

Qui revient :

/Utilisateurs/[nom d'utilisateur]/Desktop/Foo.scpt

Comment obtenir le chemin /users/[username]/Desktop/ et le nom du fichier Foo.scpt en tant que pièces individuelles ?

6voto

Matthieu Riegler Points 20160

Demandez à Finder, il sait comment faire :)

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

Une autre option consiste à utiliser des délimiteurs d'éléments de texte :

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

Si le chemin peut se terminer par une barre oblique, vous pouvez utiliser un gestionnaire comme celui-ci :

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("/") -- "/"

Notez que text item delimiters est une propriété de l'objet AppleScript (pas locale à la fonction), mais pour autant que je sache, il n'est pas nécessaire de restaurer la propriété des délimiteurs d'éléments de texte si vous ne comptez pas sur elle plus tard dans le script.

1voto

Kaydell Points 289

Cela devrait fonctionner :

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

1voto

gotube Points 101
set path_ to (POSIX path of (path to me)) as text
set name_ to name of (info for path_)
set a_ to count path_
set b_ to count name_
set minus_ to a_ - b_
set path_name_ to text 1 thru (minus_) of path_

variable path_ est le chemin
variable name_ est le nom

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X