Programmatically select multiple files in windows explorer

explorer, windows, windows-shell

Solution

This should be possible with the shell function `SHOpenFolderAndSelectItems`

EDIT

Here is some sample code showing how to use the function in C/C++, without error checking:

//Directory to open
ITEMIDLIST *dir = ILCreateFromPath(_T("C:\\"));

//Items in directory to select
ITEMIDLIST *item1 = ILCreateFromPath(_T("C:\\Program Files\\"));
ITEMIDLIST *item2 = ILCreateFromPath(_T("C:\\Windows\\"));
const ITEMIDLIST* selection[] = {item1,item2};
UINT count = sizeof(selection) / sizeof(ITEMIDLIST);

//Perform selection
SHOpenFolderAndSelectItems(dir, count, selection, 0);

//Free resources
ILFree(dir);
ILFree(item1);
ILFree(item2);

Problem

I can display and select a single file in windows explorer like this: ``` explorer.exe /select, "c:\path\to\file.txt" ``` However, I can't work out how to select more than one file. None of the permutations of select I've tried work. Note: I looked at these pages for docs, neither helped. https://support.microsoft.com/kb/314853 http://web.archive.org/web/20100716112458/http://www.infocellar.com:80/Win98/explorer-switches.htm

Original source