2010-06-10 73 views
7

Tôi đang tìm cách đọc thuộc tính tài liệu trong C#. Tôi đã nghe nói về dsofile.dll, nhưng nó có vẻ giống như một wrapper COM cũ, và đã tự hỏi nếu có cái gì đó hiện đại hơn cho các.NET framework/C#. Những gì tôi thực sự đọc không phải là một tệp tài liệu văn phòng, mà là tệp Solidworks .SLDDRW, có thuộc tính Tùy chỉnh. Bạn có thể xem và thay đổi chúng trong Windows Explorer bằng cách nhấp chuột phải vào tệp và chuyển đến cửa sổ Thuộc tính, tab Tùy chỉnh.Cách đọc thuộc tính tệp tùy chỉnh trong C#

Bất kỳ ai biết cách đọc các thuộc tính tùy chỉnh này trong C#/.NET 3.5?

Cảm ơn!

Trả lời

6

Hệ thống SolidWorks sử dụng API OLE Document Properties. Như bạn đã chỉ ra, Microsoft cung cấp một mẫu, DSOFile.dll, cho phép bạn truy cập vào các thuộc tính:

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

Các SolidWorks API cũng đã hỗ trợ mạnh mẽ cho các đặc tính này, nhưng bạn phải tải Solidworks để sử dụng API, vì vậy nó không phải lúc nào cũng là giải pháp lý tưởng. Lưu ý rằng nếu tệp đã được mở trong Solidworks, tuy nhiên, bạn sẽ không thể chỉnh sửa thuộc tính tùy chỉnh bằng cách sử dụng DSOfile.dll.

Câu trả lời đơn giản cho câu hỏi của bạn là không có API cập nhật cho các thuộc tính này; giống như nhiều API cũ khác (DDE, ví dụ) tiếp tục xuất hiện trong môi trường sản xuất, DSOFile phù hợp với nhu cầu và trung thực sẽ không hoàn toàn phù hợp để cập nhật do tính chất khá thấp của nó. DSOFile, tuy nhiên, là hoàn toàn có khả năng xử lý nhu cầu của bạn và nó hoạt động khá sạch sẽ với. Các nguồn có sẵn và có thể được biên dịch đến 64 bit nếu đó là một vấn đề cho người dùng của bạn; nó có nghĩa là bạn cần một bản cài đặt 64 bit riêng biệt, nhưng đó là một mức giá nhỏ để trả (cộng với SolidWorks không chính xác là bắt đầu bằng bit).

+1

Bạn có thể tìm bản sao được biên dịch 64 bit của 'DSOFile.dll' [tại đây] (http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6). Cũng có thể biên dịch phiên bản 32 bit cho hệ thống 64 bit bằng cách sử dụng 'regsvr32.exe' trong' C: \ Windows \ SysWOW64' thay vì phiên bản trong C: \ Windows \ system32'. – Wingman4l7

Các vấn đề liên quan