2010-06-10 28 views
7

Ich bin auf der Suche nach einer Möglichkeit, Dokumenteigenschaften in C# zu lesen. Ich habe von dsofile.dll gehört, aber es scheint wie ein alter COM-Wrapper, und fragte mich, ob es etwas moderneres für das .NET Framework/C# gibt. Was ich gerade lese, ist keine Office-Dokumentdatei, sondern eine Solidworks .SLDDRW-Datei mit benutzerdefinierten Eigenschaften. Sie können diese im Windows Explorer anzeigen und ändern, indem Sie mit der rechten Maustaste auf die Datei klicken und zum Fenster Eigenschaften, Registerkarte Benutzer, wechseln.So lesen Sie benutzerdefinierte Dateieigenschaften in C#

Kann jemand diese benutzerdefinierten Eigenschaften in C#/.NET 3.5 lesen?

Danke!

Antwort

6

Das Solidworks-System das OLE Dokumenteigenschaften API verwendet. Wie Sie wies darauf hin, haben, bietet Microsoft eine Probe, dsofile.dll, dass Sie diese Eigenschaften zugreifen können:

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

Die Solidworks API hat auch für diese Eigenschaften robuste Unterstützung, aber Sie haben Solidworks laden um die API zu verwenden, ist es nicht immer die ideale Lösung. Beachten Sie, dass Sie die benutzerdefinierten Eigenschaften mit DSOfile.dll nicht bearbeiten können, wenn die Datei in Solidworks bereits geöffnet ist.

Die einfache Antwort auf Ihre Frage ist, dass es für diese Eigenschaften keine aktualisierte API gibt; Ähnlich wie viele andere Legacy-APIs (z. B. DDE) in Produktionsumgebungen erscheinen, passt DSOFile dem Bedarf und wäre ehrlich gesagt wegen seiner ziemlich niedrigen Natur nicht vollständig für das Update geeignet. DSOFile ist jedoch perfekt in der Lage, Ihre Anforderungen zu erfüllen und es funktioniert ziemlich sauber mit .NET. Die Quelle ist verfügbar und kann zu 64 Bit kompiliert werden, wenn dies für Ihre Benutzer ein Problem darstellt. Es bedeutet, dass Sie eine separate 64-Bit-Installation benötigen, aber das ist ein kleiner Preis, den Sie bezahlen müssen (plus SolidWorks ist anfangs nicht gerade Bit-freundlich).

+1

Sie finden eine 64-Bit kompilierte Kopie von 'DSOFile.dll' [hier] (http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6). Es scheint auch möglich zu sein, die 32-Bit-Version für ein 64-Bit-System zu kompilieren, indem die 'regsvr32.exe' in' C: \ Windows \ SysWOW64' anstatt die in 'C: \ Windows \ system32' verwendet wird. – Wingman4l7

Verwandte Themen