首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件类型图标保存在数据库或XML文件中,或者

将文件类型图标保存在数据库或XML文件中,或者
EN

Stack Overflow用户
提问于 2011-03-20 19:03:07
回答 2查看 1.6K关注 0票数 3

我使用的是c#,wpf和mvvm。

在我的数据网格中,每一行的最后一个单元格中都有一个ListBox,其中包含与此行相关的文档,我称之为句点。

用户可以将文档添加到每个期间。

我希望为每个文档显示文件类型图标(16x16)和文档的名称。

文件类型图标让我有点头疼。

我不确定我是否应该在数据库中保存每个文档文件类型的图标,如.DOC,因为一天可能有10个周期,每个周期有2个.DOC文件,因此我在数据库中保存了20个图标,它们是冗余的19倍…

我的用户会附加的大多数东西都是办公文件类型,比如.xls,.doc,.pdf,图像,压缩/rar,我猜就是这些。

另一个在技术上更先进的方法是将唯一的文件类型图标保存为XML文件中编码的base-64字符串,并将文件类型扩展名保存为键/值对。

xml在应用程序启动时在字典中加载一次

代码语言:javascript
复制
<FileTypes>
<Extension ext="doc" base64string="ff5598sdfusd98fjs9df98sd9f" />
<Extension ext="docx" base64string="ff5498sdfusd98fjs9df98sd9f" />
<Extension ext="xls" base64string="ff9548sdfdsfdfusd98fjs9df98sd9f" />
<Extension ext="xlsx" base64string="ff98sfdfddfusd98fjs9df98sd9f" />
<Extension ext="pdf" base64string="ff98fdfdsdfusd98fjs9df98sd9f" />
<Extension ext="zip" base64string="ff98dfdfsdfusd98fjs9df98sd9f" />
<Extension ext="rar" base64string="fffdf98sdfusd98fjs9df98sd9f" />
</FileTypes>

每当有文档进入数据库时,我都会检查文件名中的文件扩展名,并检索字典以获得该文件的base64字符串。我仍然可以以某种方式为文件类型base64字符串实现缓存机制,这样我就不会在每次获取.doc文件时都对它们进行解码……

也许你有一个完全不同的/更好的?想法,请让我知道或建议数据库/xml保存的优点/缺点:)

EN

回答 2

Stack Overflow用户

发布于 2011-03-22 01:14:49

始终避免将二进制图像保存在数据库中。查询和转换是额外的开销。此特定选项的最佳方法是将所有图片保存为资源,并将资源名称保存到数据库中。您可以通过保留资源名称的枚举,并将onrowdatabound上的(eNUM.PARSE)名称解析为数据网格行的单元格模板的源绑定。单元格可以包含作为模板内容的图像。

票数 0
EN

Stack Overflow用户

发布于 2011-06-24 20:02:14

如果你有很少的文件类型和大量的文件,最好将文件类型存储为file_type_master类型的数据库或XML文件,然后加载一次,然后到处使用它。但是,当在加载和使用方面进行了良好的权衡时,它仍然有效。或者你也可以做一种缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5368046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档