NX二次开发-遍历UG Part复合文档

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

适用版本: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
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值