2014-01-21 6 views
1

Я работаю с классом CommonOpenFileDialog из пакета кода Windows® API для Microsoft® .NET Framework, который реализует интерфейс IFileOpenDialog.Windows API CodePack. Получить все выбранные элементы в CommonOpenFileDialog: IFileOpenDialog

Более подробная информация о Windows API CodePack здесь: http://archive.msdn.microsoft.com/WindowsAPICodePack

Проблема: Ниже метод возвращает первую выбранную папкуесли (несколько папок) или (mutltiple папки и файлы) были выбраны в " Диалоговое окно «Открыть файл».

IFileOpenDialog.GetSelectedItems([MarshalAs(UnmanagedType.Interface)] out IShellItemArray ppsai) 

Как не вернуть Все выбранные элементы (папки и файлы) в окне IFileOpenDialog в виде списка IShellItem, независимо от того, что я выбрал там?

ответ

1

Необходимо указать Multiselect.

Вот unmarshalled пример:

CommonOpenFileDialog folderDialog = new CommonOpenFileDialog("Input Folder Selection"); 
     folderDialog.IsFolderPicker = true; 
     folderDialog.Multiselect = true; 

     if (folderDialog.ShowDialog() == CommonFileDialogResult.Ok) 
     { 
      foreach (string folderName in folderDialog.FileNames) //it's a little confusing, but FileNames represents folders as well in the API 
      { 
       // do something 
      } 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^