我正在使用c#,wpf和mvvm。
在我的数据表格中,每一行的最后一个单元格都有一个名为“期”的与该行相关的文档ListBox。
用户可以向每个期添加文档。
我想为每个文档显示文件类型图标(16x16)和文档名称。
文件类型图标让我有点头疼。
我不确定是否应该像.DOC这样将每个文档的文件类型图标保存在数据库中,因为一天可能有10个期,每个期都附有2个.DOC文件,因此我在数据库中保存了20个图标,这些图标是19次冗余的...
大多数用户附加的内容都是Office文件类型,如.xls、.doc、.pdf、图像、zip/rar等。
另一个但技术上更先进的方法是将唯一的文件类型图标作为编码的base-64字符串保存在XML文件中,文件类型扩展名作为键/值对。
XML在应用程序启动时加载一次到字典中。
每次数据库传输文件时,我会检查文件名中的文件扩展名并检索字典以获取文件的Base64字符串。我可以实现一种缓存机制来缓存文件类型的Base64字符串,这样我就不需要每次获取.doc文件时都解码它们... 也许你有一个非常不同/更好 的想法,请告诉我或提出有关数据库/XML保存的优缺点的建议 :)
在我的数据表格中,每一行的最后一个单元格都有一个名为“期”的与该行相关的文档ListBox。
用户可以向每个期添加文档。
我想为每个文档显示文件类型图标(16x16)和文档名称。
文件类型图标让我有点头疼。
我不确定是否应该像.DOC这样将每个文档的文件类型图标保存在数据库中,因为一天可能有10个期,每个期都附有2个.DOC文件,因此我在数据库中保存了20个图标,这些图标是19次冗余的...
大多数用户附加的内容都是Office文件类型,如.xls、.doc、.pdf、图像、zip/rar等。
另一个但技术上更先进的方法是将唯一的文件类型图标作为编码的base-64字符串保存在XML文件中,文件类型扩展名作为键/值对。
XML在应用程序启动时加载一次到字典中。
<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保存的优缺点的建议 :)