标签:c resources zip embedded-resource
所以,我的应用程序依赖于大量的小文件.实际数字约为90,000.现在,我使用一个需要访问这些文件的组件,但它接受它们的唯一方法是使用URI.
到目前为止,我在开发应用程序时只是将包含所有文件的目录添加到我的debug-folder中.但是,现在我必须考虑部署.在部署中包含所有这些文件有哪些选择?
到目前为止,我已经提出了几个不同的解决方案,其中没有一个我完全成功完成了工作.首先是简单地将所有文件添加到安装程序,然后将它们复制到它们的位置.从理论上讲,这至少会起作用,但它会使安装程序(用VS生成的标准MSI安装程序)保持绝对地狱.
我想出的下一个选项是将它们压缩成单个文件并将其作为安装程序的一部分添加,然后通过使用自定义操作解压缩它们.但是,标准库似乎不支持复杂的zip文件,这使得这个选项变得相当困难.
最后,我意识到我可以创建一个单独的项目,并将所有文件添加为该项目中的资源.我不知道的是指向存储在其他程序集中的资源的URI如何工作.意思是,支持“application:// ,,,:Assembly”-format的所有东西都是“标准”吗?
那么,这些是我唯一的选择,还是还有其他一些?什么是最好的选择呢?
解决方法:
我会使用一个类似zip的存档文件,而不是将该文件解压缩到您的硬盘上但保留原样.这也是几个众所周知的应用程序所使用的方法,这些应用程序依赖于大量较小的文件.
Windows支持将zip文件用作虚拟文件夹(从XP开始),用户可以使用Windows资源管理器等标准工具查看和编辑其内容.
C#也对zip文件有很好的支持,如果你对内置工具不满意,我推荐其中一个主要的Zip库 – 它们非常容易使用.
如果您担心性能,在内存中缓存文件是一个简单的练习.如果您的用例实际上要求文件存在于磁盘上,也不是问题,只需在首次使用时解压缩它们 – 它只是几行代码.
简而言之,只需使用zip存档和一个好的库,您就不会遇到任何麻烦.
无论如何,我不会直接在您的应用程序中嵌入大量文件.数据文件是分开的.
标签:c,resources,zip,embedded-resource 来源: https://codeday.me/bug/20190626/1296404.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。