Как прочитать пользовательские свойства файла в C # - PullRequest
7 голосов
/ 10 июня 2010

Я ищу способ прочитать свойства документа в C #.Я слышал о dsofile.dll, но похоже, что это старая оболочка COM, и мне было интересно, есть ли что-то более современное для .NET Framework / C #.На самом деле я читаю не файл офисного документа, а файл Solidworks .SLDDRW, который имеет пользовательские свойства.Вы можете просмотреть и изменить их в проводнике Windows, щелкнув правой кнопкой мыши файл и перейдя в окно «Свойства» на вкладке «Пользовательские».

Кто-нибудь знает, как читать эти пользовательские свойства в C # / .NET 3.5?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 22 февраля 2011

Система SolidWorks использует API свойств документа OLE.Как вы указали, Microsoft предлагает пример DSOFile.dll, который позволяет вам получить доступ к следующим свойствам:

http://support.microsoft.com/kb/224351

SolidWorks API также имеет надежную поддержку этих свойств,но вы должны загрузить Solidworks, чтобы использовать API, так что это не всегда идеальное решение.Обратите внимание, что если файл уже открыт в Solidworks, вы не сможете редактировать пользовательские свойства с помощью DSOfile.dll.

Простой ответ на ваш вопрос заключается в том, что не существует обновленного API дляэти свойства;почти так же, как многие другие устаревшие API (например, DDE) продолжают появляться в производственных средах, DSOFile удовлетворяет потребности и, честно говоря, не совсем подходит для обновления из-за его довольно низкого уровня.DSOFile, однако, вполне способен справиться с вашими потребностями, и он работает довольно чисто с .NET.Исходный код доступен и может быть скомпилирован в 64-битную версию, если это является проблемой для ваших пользователей;это означает, что вам нужна отдельная 64-битная установка, но это небольшая цена (плюс SolidWorks не совсем подходит для работы с несколькими битами).

1 голос
/ 10 июня 2010

Если я правильно вас понимаю, в этой теме есть ответ для вас:

Чтение / запись расширенных свойств файла (C #)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...