Skip to content

Evidenziare un file sul desktop

Xojo nativamente ha la possibilità di aprire un file (FolderItem) durante l’esecuzione del codice. Se si vuole solamente vedere la cartella in cui il file è contenuto, allora utilizziamo lo stesso comando sull’elemento padre del nostro file. Ma come fare per evidenziarlo?

L’operazione è utile specie nei casi in cui ci siano molti file nella cartella e quindi l’utente sarebbe costretto a cercarlo “manualmente”.

Per fare questo è possibile utilizzare una estensione per la classe FolderItem che permette, in modo assolutamente cross-platform, di evidenziare sul desktop il nostro file.

Una volta inserito il metodo in un modulo la chiamata sarà semplicemente:

mioFile.hiliteOnDesktop

Ecco il codice per il metodo:

Public Sub hiliteOnDesktop(extends f as FolderItem)
   dim cmd as Text
#if TargetWindows
   //per windows utilizziamo explorer
   cmd="explorer.exe /select,"+f.NativePath.ToText
#elseif TargetMacOS
   //per macOS utilizziamo il comando open con l'opzione -R
   cmd="open -R """+f.NativePath.ToText+""""
#else
   //per linux o raspberry non possiamo selezionare il file
   //per cui apriamo la cartella che lo contiene
   //utilizzando il comando da terminale
   cmd="xdg-open """+f.Parent.NativePath.ToText+""""
#endif
 
   //utilizziamo una shell per questo
   dim sh as new Shell
   sh.Execute cmd
   //se ci sono errori utilizziamo il metodo nativo sul parent
   if sh.Error<>0 then
      f.parent.Launch
   end if
End Sub

Ancora un esempio di come il linguaggio Xojo sia possa ampliare semplicemente.