当您点击按钮时,您知道如何从Visual Studio中的资源打开文件吗? 感谢。
答案 0 :(得分:9)
您可以使用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
。如果是二进制文件,则必须直接读取流。
答案 1 :(得分:1)
当您的文件是本地文件
时,可以使用此选项 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;
}