当我单击按钮时,您知道如何从 Visual Studio 中的资源中打开文件吗?谢谢。
问问题
14071 次
2 回答
12
您可以使用GetManifestResourceStream方法:
var currentAssembly = Assembly.GetExecutingAssembly();
using (var stream = currentAssembly.GetManifestResourceStream("SomeNs.file.txt"))
using (var reader = new StreamReader(stream))
{
// TODO: read the stream here
string contents = reader.ReadToEnd();
}
在此示例file.txt
中作为资源嵌入到当前程序集中。您将不得不调整您尝试读取的资源的名称。StreamReader
如果嵌入的资源不是文本文件,则不要使用 a 。如果它是二进制文件,则必须直接读取流。
于 2012-09-08T18:23:20.893 回答
0
这可以在您的文件是本地文件时使用
string resName = "myfile.txt";
var file = GetResourceStream(resName);
string all = "";
using (var reader = new StreamReader(file))
{
all = reader.ReadToEnd();
}
在哪里
static UnmanagedMemoryStream GetResourceStream(string resName)
{
var assembly = Assembly.GetExecutingAssembly();
var strResources = assembly.GetName().Name + ".g.resources";
var rStream = assembly.GetManifestResourceStream(strResources);
var resourceReader = new System.Resources.ResourceReader(rStream);
var items = resourceReader.OfType<System.Collections.DictionaryEntry>();
var stream = items.First(x => (x.Key as string) == resName.ToLower()).Value;
return (UnmanagedMemoryStream)stream;
}
于 2012-09-08T18:27:51.827 回答