2010-03-16 3 views
0

Недавно я видел приложение, в котором было два простых элемента управления (treeView и подробный ListView), которые использовались для перечисления каталогов и файлов. Я знаю, как это сделать, но у него была еще одна приятная функция, отличная от списка файлов: она загружала информацию из системной оболочки, например, значки папок, спецификации файлов (в основном, типы файлов, унаследованные от системы, поэтому, если бы у меня было приложение, изменил тип файла SVG на «Неизвестный векторный графический материал», затем он показал весь тип файла SVG в этой строке).Простой просмотр файлов и папок в C#

Я хотел бы спросить вас, как я могу сделать эти функции легко без использования сторонней библиотеки?

ответ

1
  1. Чтобы получить значок файла, используйте System.Drawing.Icon.ExtractAssociatedIcon.
  2. Чтобы получить тип файла, вам необходимо использовать функцию Win32 SHGetFileInfo.
  3. Чтобы изменить дату, размер файла и т. Д., Вы можете использовать DirectoryInfo и FileInfo классы.

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

+0

Спасибо. Эта оболочка Megapack выглядит как лучшее решение, попробует! – fonix232

1

вы можете получить значок файла по System.Drawing.Icon.ExtractAssociatedIcon() ...

+0

Да, я это знаю, но это своего рода разочарование, чтобы добавить любой значок с этим , Разве нет какой-то автоматизированной версии этого? Я имею в виду извлечение значка, а также добавление значка в узел с помощью простой команды? – fonix232

+0

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

+0

Разве это не так медленно? А также для treeView ему нужны только значки папок. Моя большая проблема - listView, где он должен получить ВСЕ иконки файлов там, с типом файла тоже ... – fonix232

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