JMichaelTX
3/15/2018 - 6:49 AM

Reveal in Finder Item Selected in PathFinder (AppleScript)

Here is a handler I use to reveal in Finder the item currently selected in Path Finder. Often I need to do something in the Finder window, so I have added a pause until the Finder window name is the same as the Path Finder window name. Revised to Ve

--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
on revealPFItemInFinder()
  --–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
  (*  VER: 2.1    2018-03-19
    PURPOSE:  Reveal Item in Finder that is Selected in Path Finder
         
    RETURNS:  alias of item selected in both Finder and Path Finder
                  
    AUTHOR:  JMichaelTX
  --–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
  *)
  local finWinName, pfWinName, fileList, itemPath, oItem
  
  --- GET THE ITEM SELECTED IN PATH FINDER ---
  
  tell application "Path Finder"
    set fileList to (get selection)
    if ((fileList is missing value) or ((count of fileList) ≠ 1)) then error ("You must select only ONE file in Path Finder.")
    set oItem to item 1 of fileList
    set itemPath to POSIX path of oItem
    set pfWinName to name of container of oItem
  end tell
  
  set itemAlias to alias POSIX file itemPath
  
  --- REVEAL SAME ITEM IN FINDER ---
  
  tell application "Finder"
    activate -- to make sure reveal will be in frontmost window
    reveal itemAlias
    
    --- Now Wait for New Finder Window with Same Name as Path Finder ---
    
    set finWinName to name of window 1
    
    set maxWaitTime to 2.0
    set delayTime to 0.1
    set waitTime to 0
    
    repeat while finWinName ≠ pfWinName
      delay delayTime
      set finWinName to name of window 1
      set waitTime to waitTime + delayTime
      if (waitTime > maxWaitTime) then error "Max wait time of " & maxWaitTime & " exceeded waiting for Finder Window of " & pfWinName
    end repeat
    
  end tell
  
  return itemAlias
  
end revealPFItemInFinder