Как я могу получить значок, соответствующий типу файла в C #? - PullRequest
1 голос
/ 07 марта 2011

Мне нужно получить значки, связанные с файлом types , а не с файлом name .

Я храню в своей базе данных файлы с типом => filename.type, но эти файлы не должны существовать на жестком диске.

Поэтому мне нужно передать тип и получить значок для него

  • Я не хочу использовать решения с правами администраторанужен пользователю.
  • Если возможно, только управляемый код
  • Если возможно, не включайте доступ к реестру

Что вы предлагаете?

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Вы можете позвонить SHGetFileInfo().

Если файл не существует, вам нужно будет использовать флаг SHGFI_USEFILEATTRIBUTES:

Если параметр uFlags включает Флаг SHGFI_USEFILEATTRIBUTES, это параметр не должен быть действительным имя файла. Функция будет продолжена как будто файл существует с указанное имя и с файлом атрибуты, переданные в Параметр dwFileAttributes. это позволяет получить информацию о тип файла, передавая только расширение для pszPath и прохождения FILE_ATTRIBUTE_NORMAL в dwFileAttributes.

Как обычно, pinvoke.net обладает необходимой информацией, чтобы получить к ней доступ из управляемого кода.

0 голосов
/ 07 марта 2011

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

...