你有一个库,库中的一个函数提供了一个功能,除其他外输出一个文件(可能在每次执行中可能到不同的路径)。每次执行时文件的内容和名称都是固定的。实现这一目标的最佳方法是什么?将文件的内容声明为字符串并每次打印(可能不是一个好主意,文件长约1000行)?或者有一个文件总是与库dll在同一个文件夹中?如何确保编译器始终包含此文件?或者有没有更好的方法,例如以某种方式将文件嵌入到dll中?
请注意,输出此文件并不是库的唯一功能,它是库中函数完成的子任务之一
谢谢!
答案 0 :(得分:1)
如果内容在每种情况下都是相同的并且它是非平凡的(即你不能只用几行代码写出来),那么将它作为资源文件嵌入到程序集中。
然后您可以使用Assembly.GetManifestResourceStream
获取输入流,并将数据复制到文件中。 (如果您使用的是.NET 4.0,则可以使用Stream.CopyTo
方法完成。)
答案 1 :(得分:0)
您可以在VS2010项目中创建资源文件,并将该文件的类型访问权限作为自动生成的类的静态成员。然后,资源也将自动嵌入。
尝试添加新项目 - >资源文件。创建文件后,将文件拖到设计器表面上。
答案 2 :(得分:0)
另外还有file.copy方法http://msdn.microsoft.com/en-us/library/system.io.file.copy(VS.71).aspx 您只需将文件包含在项目中(添加现有项目),并在需要时复制它。