Hur ta ut namn på server fil ligger på/url?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2011-11-21 15:22

Jag vill med ett shell- eller applescript kunna ta ut adressen till en fil eller mapp på en filyta, men vill inte ha localhost/volumes/ osv.
Hur får man fram tex afp://my.server.se/path/to/my%20folder/my%20file.zip?

Inte säker på vad du menar i med filyta. Men om du menar en fil är markerad i Finder kan borde man kunna göra så här:

tell application "Finder"
set sel to the selection as text
set currentpath to POSIX path of sel
end tell

Nej, jag tror inte att det funkar som du vill ha det vid närmare eftertanke. Man får bara en sökväg, ingen klickbar adress.

Så här får man en "klickbar" address men den fungerar bara om servern redan är monterad.
tell application "Finder" to set link to URL of (get selection as alias)

  • Medlem
  • 2011-11-21 16:32

Som jag skriver så får man då en adress till localhost. Jag vill även ha servernamnet.

Jag fick inte Localhost men man får byta ut fil:///Volumes mot afp://server för att få hela adressen. Att få adressen via script är inte helt trivialt verkar det som. Finder visar visserligen adressen i Get Info, men det är inte lätt att veta var man kan hämta den.

Här är en variant som helt enkelt hämtar texten i Get Info-fönstret. Men jag misstänker att det finns fallgropar beroende på hur "filytan" är ansluten och om sökvägen har konstiga tecken. Saxat från Ars Technica. Fungerar för mig på afp-filer, men inte på lokala filer. Finns även en Python-version, men den hann jag inte få att rulla i Applescript men det klarar du nog.

tell application "Finder"    set w to open information window of (selection as alias)
    tell application "System Events"
        tell process "Finder"
            set m to value of static text 14 of scroll area 1 of window 1
            set output to ReplaceText((m as string), " ", " ") of me
        end tell
    end tell
    close information window of (selection as alias)
    set the clipboard to output as text
end tell


on ReplaceText(theString, fString, rString)
    set current_Delimiters to text item delimiters of AppleScript
    set AppleScript's text item delimiters to fString
    set sList to every text item of theString
    set AppleScript's text item delimiters to rString
    set newString to sList as string
    set AppleScript's text item delimiters to current_Delimiters
    return newString
end ReplaceText
  • Medlem
  • 2011-11-21 17:49

Mja, det duger inte riktigt. Men tack för försöket.

1
Bevaka tråden