2011-05-13 84 views
2

我正在写将会允许用户选择一组应用程序需要记住的图像文件的一个新的C#桌面应用程序。我还有一些其他设置可以保存我将要保存为xml文件以及它们指定的文件。我正在考虑将文件一起保存在zip/cab类型的文件或类似的文件中,比如.war或.docx文件。这样,当用户回来时,他们可以选择他们的文件并拥有他们需要的一切。这样用户将无法(轻松)删除所需的文件。缺点是文件可能会变得很大,尤其是因为它可能包含图像文件。我应该如何存储用户指定的一组文件?

但是,当时我想的是(.cproj),这是多么的Visual Studio店的东西在他们的项目文件指向特定文件的文件夹。这似乎也是一个很好的解决方案。走这条路线,我不得不添加一些错误检查,以确保用户没有删除文件。我不确定这是否代码需要压缩/解压缩文件。

任何指针上哪种方式会更好?任何方式的优点/缺点?

回答

0

Hmmmm ....因为你正在寻找反正有一个XML文件,我想看看保存图像数据作为XML文件中的CDATA部分,从这个他们可以重现(和图像也不会得到“失去”或“移动”)。

虽然这可能会导致一个相当大的XML文件,但您可以随时压缩它,一旦它达到一定的大小(达到一定的大小将不会有回报压缩它,解压缩它所需的时间可以比加载未压缩版本所用的时间更长)。

包括它在XML文件中还省去了使用存储的数据库的需求 - 尽管使用SQLCompact也可能是一个可行的选择(你可以存储在数据库中的图像)。

+0

从两个解决方案到四个。我喜欢这个网站,所以人们可能比我更聪明。没有考虑将图像数据保存在xml中或使用数据库。我假设sqlcompact可以存储博客?我可能不得不尝试xml方法。我已经从共享点和信息处理了一点点。 – xecaps12 2011-05-13 04:40:06

+0

@xecaps,不SQLCompact不存储blob,但它有更好的东西:图像数据类型(或者你可以使用varbinary(max))。加上它的小尺寸,易于部署和超低成本(免费),它成为一个非常现实的选择。检查[此链接](http://msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx)以获取有关可用数据类型的更多信息。 – slugster 2011-05-13 10:35:32

+0

我将首先尝试xml的想法。我想我可能会尝试编写一个接口,并将其转换到稍后可以更改存储类型的位置。 – xecaps12 2011-05-16 11:29:27

1

没有权利回答这个问题的真正依赖于实际的业务需求是什么。最重要的一点要记住的是,如果您使用文件位置引用,则可以在应用程序的在线和离线状态下修改文件的外侧。如果这是一个导入功能,我会去与文件参考,如果你需要保持快照的文件,我会把他们在一个压缩文件。

相关问题