2010-06-10 4 views
7

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

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

Спасибо!

ответ

1

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

Read/Write ‘Extended’ file properties (C#)

+0

Нет, расширенные свойства не являются настраиваемыми свойствами, я только что видел это ... – Guillaume86

6

Система 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

Вы можете найти 64-битную скомпилированную копию 'DSOFile.dll' [здесь] (http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6). Также представляется возможным скомпилировать 32-битную версию для 64-разрядной системы, используя 'regsvr32.exe' в' C: \ Windows \ SysWOW64' вместо того, что находится в 'C: \ Windows \ system32'. – Wingman4l7

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