适用版本:NX 11及以前版本 (从NX12.0开始不适用)
一、概述
UG Part (*.prt)是一个复合文档,Windows系统里有很多常用的文件都是复合文档,比如Office的xls、doc等等。简单地说,复合文档就是在一个文件里可以内嵌入其他各种文档,不仅可以包含文本,还可以包括图形、电子表格数据、声音、视频图像以及其它信息。在UG Part (*.prt)文件里除了包括模型数据之外,还包括用于预览显示的图像和部件的属性等。
二、复合文档原理
复合文档的原理就像一个文件系统(文件系统:如 FAT 与 NTFS )。复合文档将数据分成许多流( Streams ),这些流又存储在不同的仓库( Storages )里。将复合文档想象成你的 D 盘, D 盘用的是 NTFS ( NT File System )格式,流就相当于 D 盘里的文件,仓库就相当于 D 盘里的文件夹。流和仓库的命名规则与文件系统相似,同一个仓库下的流及仓库不能重名,不同仓库下可以有同名的流。每个复合文档都有一个根仓库( root storage )。
三、功能说明
在C#中,System.IO.Packaging命名空间包含了用于封装OLE结构化存储访问的公开(pubic)的StorageInfo类和StreamInfo类,不幸的是,创建或打开文件所需的StorageRoot类是一个内部(internal)类,但是我们可以使用反射来访问StorageRoot类上的方法。下面的代码可以获取到UG Part(*.prt)文件的属性:
//需要引用 WindowsBase.dll
using System.IO.Packaging;
using System.Runtime.InteropServices;
namespace Bizca
{
public class PartAttributeCollection:System.Collections.Generic.IEnumerable<PartAttribute>
{
private readonly System.Collections.Generic.L

文章介绍了UGPart(*.prt)文件作为复合文档的性质,以及如何在C#中利用System.IO.Packaging命名空间通过反射技术访问和操作此类文件的属性和元数据。
最低0.47元/天 解锁文章
1167





