1

当我单击按钮时,您知道如何从 Visual Studio 中的资源中打开文件吗?谢谢。

4

2 回答 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 回答