【问题标题】:Get exact folder structure of embedded resources获取嵌入式资源的准确文件夹结构
【发布时间】:2013-08-03 19:54:21
【问题描述】:

我将整个文件文件夹作为嵌入资源嵌入到我的项目中。构建操作设置为 Embedded Resource,而不是普通的 Resource,并且我没有在属性的项目资源列表中包含这些文件。但是,当我尝试使用 GetManifestResourceNames 获取他们的全名时,我最终会得到一个用句点分隔的完整路径,例如:

MyApp.Resources.Folder.Subfolder.file.dat
MyApp.Resources.Folder.Subfolder.file2.dat
...

坏消息:文件夹结构可能会有所不同,其中可能包含名为 Folder1.00Folder/file1.xml.backup 的文件夹 因此,我无法区分文件名何时是Folder.Ext/file.old.xml,何时是Folder/Ext/file/old.xml等等。

我不知道该怎么办。将文件夹结构预构建到某个文件列表并在运行时解析它?那将是一团糟。也许有更优雅的方式来做到这一点?

【问题讨论】:

  • 您是否创建了具有预期重复路径的文件并检查了会发生什么?我很好奇如果Folder.Ext/file.old.xmlFolder/Ext/file/old.xml 同时存在会发生什么。
  • @WillEddins 在这种情况下它不会编译:)

标签: c# wpf visual-studio visual-studio-2012 .net-3.5


【解决方案1】:

如果您真的需要了解文件夹结构,您只需保持可预测性即可。

如果您确保文件夹名称中没有句点并且文件名只有 1 个句点,那么您可以安全地将资源字符串解析为适当的 <namespace>.<path>.<filename> heirarchy。

这也取决于您的要求。如果您只想要所有带有Folder1 的子文件夹,则文件夹结构解析的其余部分不再重要,因为它只是匹配开始的资源字符串。如果更复杂,您可能需要以对您有意义的格式保存层次结构信息(可能在构建阶段生成)。

【讨论】:

  • 是的,我也有同样的想法,但希望可以有另一种方式......也许,不是。
猜你喜欢
  • 2017-11-18
  • 2012-08-16
  • 2013-04-04
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 2017-11-08
相关资源
最近更新 更多