我想通过将字符串变量传递给Properties.Resources来使用我的解决方案中的资源:
string[] documents = new string[] { "one", "two", "three"};
foreach (var document in documents)
{
extractFile(String.Format(@"C:\temp\{0}.doc",document), properties.Resources.document);
}
private void extractFile (string destinationFile, byte[] sourceFile)
{
File.WriteAllBytes(destinationFile, sourceFile);
}
但我不能使用字符串"文件"对于properties.Resources是这样的。
('资源'不包含'文档'的定义)
我该如何做到这一点?
答案 0 :(得分:1)
您可以按名称获取资源:
string[] documents = new string[] { "one", "two", "three"};
foreach (var document in documents)
{
var unmanagedMemoryStream = Resources.ResourceManager.GetStream(document);
var memoryStream = new MemoryStream();
unmanagedMemoryStream.CopyTo(memoryStream);
memoryStream.Position = 0;
byte[] bytes = memoryStream.ToArray();
extractFile(String.Format(@"C:\temp\{0}.doc", document),
bytes);
}
ResourceManager
上有几种可能更适合的方法,具体取决于资源的类型:GetStream
,GetString
或GetObject
。
答案 1 :(得分:0)
作为问题的解决方案,我压缩了所有需要的文件,并将这1个文件添加到资源中。 我将其解压缩到临时文件夹并根据需要将其解压缩到适当的位置......