08 febbraio 2010

Copiare il path di un file su Mac Os X Snow Leopard tramite il finder

Precedentemente su questo Blog (link) avevo pubblicato un post per aggiungere funzionalità al finder di Mac Os X Leopard mediante automator.
In particolare era stato implementato uno script Applescript mediante il cui era possibile aprire nella finestra contestuale dal Finder un menu per poter recuperare il path di uno o più files.

Mi è stato fatto notare che ci sono stati dei cambiamenti in Snow Leopard per cui ho adattato lo script al nuovo sistema operativo.

Ho deciso quindi di implementare una nuova versione dello script. Anzi 2 nuove versioni da usare in 2 modalità alternative.
METODO 1 - MENU CONTESTUALE NEL FINDER
I passi da eseguire sono pochi e semplici, cercherò di rendere la cosa il meno possibile complessa con l'ausilio di opportune immagini.

1. Aprire l'applicazione AUTOMATOR (applicazione davvero utile, potete trovare maggiori informazioni al link) e selezionare come tipo di progetto "Servizio".



2. Nei menù a tendina presenti nella parte centrale della finestra dovrete scegliere rispettivamente le voci : "documenti e cartelle" e "Finder.app"



3. Nel menà alla sinistra della vostra pagina dovrete scegliere "Utility" e "Esegui Applescript".



4. Dovrete copiare e incollare questo pezzo di codice all'interno dell' opportuno riquadro, come in figura :
(* 
 author : Franzi Alessandro 
*)
on run {input, parameters}
 
 set sel to input
 if sel is {} then
  display dialog "Devi selezionare almeno un file prima" buttons {"Cancel"} default button "Cancel" giving up after 15
  return {}
 end if
 
 -- se sono state selezionate piu voci
 set baseList to {}
 repeat with selItem in sel
  -- Recupero la corrente
  set lastItem to POSIX path of (selItem as text)
  -- Inserisco in lista
  set baseList to baseList & lastItem
 end repeat
 
 -- recupero le directory se piu di una
 set pathList to my baseList
 
 
 if pathList is {} then
 else
  set scelte to (choose from list pathList with prompt "Path:" with title "Show Path" with multiple selections allowed)
  
  if scelte is {} then
  else
   set myString to ""
   --set the clipboard to selected
   repeat with theItem in scelte
    set myString to theItem & "
" & myString
   end repeat
   --set the clipboard to selected
   try
    
    set the clipboard to myString
   on error
    display dialog "Problemi"
   end try
  end if
  
 end if
end run




5. Scegliere di Salvare il file e inserire il nome con cui volete registrare il servizio (stesso nome con cui lo vedrete nel menu contestuale nel vostro Finder)





6. Adesso utilizzando il finder potrete accedere alla nuova funzionalità



METODO 2 - BARRA CONTESTUALE MAC OS X

Il seguente metodo consiste semplicemente nell' aggiungere nella barra di Mac Os X il pulsante per accedere alla funzionalità relative agli AppleScript del vostro sistema. I passi sono semplici come nel caso precedente, anche lo script cambia, visto che il contesto in cui viene utilizzato è diverso. Naturalmente l'utilizzo è lo stesso, per cui tramite il finder potrete selezionare i files e tramite l'icona accedere alla funzionalità.

1. Lanciare l'applicazione "AppleScript Editor", entrare nelle preferenze ed abilitare l'icona per gli script nella barra di Mac Os X :


2. Tramite automator salvare il seguente codice in un file di script :

(* 
 author : Franzi Alessandro 
*)

set debug to true

global windowTitle
set windowTitle to "Show Path"

on findPath()
end findPath

-- Restituisce la lista dei path selezionati 
on getPathList(sel)
 if sel is {} then
  display dialog "Devi selezionare almeno un file prima" buttons {"Cancel"} default button "Cancel" giving up after 15 with title windowTitle
  return {}
 end if
 
 -- se sono state selezionate piu voci
 set baseList to {}
 repeat with selItem in sel
  -- Recupero la corrente
  set lastItem to POSIX path of (selItem as text)
  -- Inserisco in lista
  set baseList to baseList & lastItem
 end repeat
 return baseList
end getPathList

on getSelected(selected)
 if selected is {} then
 else
  set myString to ""
  --set the clipboard to selected
  repeat with theItem in selected
   set myString to theItem & "
" & myString
  end repeat
  --set the clipboard to selected
  try
   
   set the clipboard to myString
  on error
   display dialog "Problemi"
  end try
 end if
end getSelected

tell application "Finder"
 
 -- recupero le directory se piu di una
 set pathList to my getPathList(selection)
 
 -- se non sono i debug mostro una dialog
 --if debug then display dialog cmd with title windowTitle
 
 if pathList is {} then
 else
  set scelte to (choose from list pathList with prompt "Path:" with title windowTitle with multiple selections allowed)
  
  set return to my getSelected(scelte)
  
 end if
 
end tell


3. Copiare i files degli script nella cartella dove essi verranno recuperati. Cliccare sull'icona appena aggiunta, navigare il menù "apri la cartella Script", dopodichè "Apri la cartella script Finder" (scegliendo in quale cartella copiare i files potrete usare gli script a livello locale sull'applicazione, altrimenti a livello globale su tutto il sistema operativo)





4. Adesso accedendo mediante l'icona nella barra contestuale di Mac Os X potrete usare lo script che ai fini pratici analizzeremo tra un pò.



COME FUNZIONA

Il funzionamento è semplice, è possibile selezionare uno o più files di cui si intende visualizzare il percorso completo. Dopodichè mediante il menù contestuale o la barra contestuale richiamare lo script appena salvato.





In questa finestra, è possibile selezionare una o più voci (mediante il tasto ctrl + click è possibile selezionarne più di una) dopodichè premendo sul tasto OK si ha la possibilità di copiare nella clipboard il percorso dei vostri files.

Spero che questo strumento vi sia d'aiuto, tendo a ribadire che è davvero strano che la Apple non abbia implementato in maniera nativa questo strumento, io lo trovo davvero comodo.
Alla prossima...Stay Tuned!!

1 commento:

Anonimo ha detto...

spesso basta trascinare un file o cartella nel campo dell applicazione desiderata e viene incollato il percorso.
ho trovato anche diversi script utili (anche se in inglese) a questa pagina:
http://www.giacomoballi.com/scripts.html