Update: I seems like Microsoft changed the behavior of the Explorer’s command line parameters in Vista and Windows 7. Below is the fixed version of my code that addresses the problem.
So, I was wondering the other day how to implement a functionality similar to Firefox’s “Open Containing Folder” or OS X’s “Reveal In Finder”.
It turned out to be extremely simple. Here is the Pascal/Delphi-Code:
uses ShellAPI; function RevealInExplorer(const Filename: string; ShowExplorerWithFoldersBar: Boolean = True): Boolean; var Params: string; begin if FileExists(Filename) or DirectoryExists(Filename) then begin Params := Format('/select,"%s"', [Filename]); if ShowExplorerWithFoldersBar then Params := '/e,' + Params; ShellExecute(0, 'open', 'explorer.exe', PChar(Params), nil, SW_SHOWNORMAL); Result := True; end else Result := False; end;