Добавление определенных файлов или папок в представление проводника Windows - PullRequest
3 голосов
/ 13 июля 2009

Я работаю над программой тегов для моего компьютера. Мне нужна возможность передавать список файлов или папок в проводник (или что-то подобное), чтобы отображать их и иметь возможность манипулировать ими так же, как вы бы это делали в представлении папок в Windows.

Я уже написал программное обеспечение, которое записывает и хранит теги относительно пути к файлу на компьютере, и я могу динамически искать их, создавая список путей, но в следующей части я немного озадачен.

Даже если есть решение, в котором я обманываю работу, заставляя думать, что файлы находятся в «временной» папке, и просто отображаю это, это было бы идеально.

Пока я все написал на C #, но я не привередлив в языке.

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 03 августа 2009

Элемент управления IExplorerBrowser является собственным интерфейсом для использования элемента управления «Проводник Windows».Это было перенесено в .NET в Windows API Code Pack для .NET Framework (http://code.msdn.microsoft.com/WindowsAPICodePack)

. Вы можете начать с использования этого элемента управления (есть версия WPF и winforms, с событиями, коллекциями, которые вы можетеbind to, множество свойств / флагов для установки и т. д.).

Если это не дает желаемого контроля, вы можете перейти к фактическим объектам Shell. Библиотека выше также предоставляет доступ к различным типамОбъекты оболочки - файлы, папки, виртуальные элементы, такие как панель управления, другие известные папки и т. Д. Вы можете посмотреть их образцы оболочки и увидеть использование.

Короче говоря, вы можете использовать элемент управления типа ListBox вваше приложение и отображать типы файлов / папок (все, что представлено в командной консоли). Вы также можете получить исчерпывающую информацию о каждом объекте, например их миниатюру / значок, свойства и т. д.

0 голосов
/ 13 июля 2009

Конечно, вы можете также создавать временные папки, содержащие ссылки на ваши помеченные файлы, а затем встраивать элемент управления explorer в ваше приложение, которое затем можно будет перейти к «file: // c / temp / mytaggedfolder» или подобному, но ... 1001 *

А как насчет простого добавления всех данных в список? Пример кода для этого есть в codeproject, например.

0 голосов
/ 13 июля 2009

Выполните поиск для IShellFolder и IShellView. например: http://www.codeproject.com/KB/shell/explorer.aspx

Интерфейсы не особенно просты в использовании, но не особенно сложны и довольно мощны. Исходя из вашего описания, это звучит точно так же, как и то, что вам нужно, чтобы разместить представление обозревателя в вашем приложении, указать его как на реальную файловую систему, так и на собственное пространство имен, а затем настроить / переопределить поведение.

0 голосов
/ 13 июля 2009

Создайте свой собственный просмотрщик каталогов. Однако это будет довольно сложной и трудоемкой задачей.

Вариант 2:

Создайте каталог со всей вашей теговой древовидной структурой (используйте ссылки на все реальные файлы или только некоторые идентификаторы).

Показать в проводнике.

Отслеживайте изменения в этом каталоге и делайте следующие изменения с вашими помеченными данными.

...