读取作为资源嵌入的.txt

本文关键字:txt 资源 读取 | 更新日期: 2023-09-27 18:29:33

我在代码中嵌入了一个资源,我想读取文本并将文本应用于一些字符串变量。我已经想出了当我使用外部文件时如何做到这一点,但我只想要.exe

string setting_file = "config.txt";
string complete = File.ReadAllText(setting_file);
string Filename = complete.Split('@').Last(); //"Test.zip"; 
string URL = complete.Split('@').First();

如何读取资源config.txt(最好没有新程序)

读取作为资源嵌入的.txt

File类仅用于访问文件系统,而您的文件已不在系统中,因此需要更改此行。正如其他人用链接答案暗示的那样,你需要获得资源的流,然后阅读它。可以调用以下方法来替换File.ReadAllText方法调用。

private static string GetTextResourceFile(string resourceName)
{
    var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
    using (var sr = new StreamReader(stream))
    {
        return sr.ReadToEnd();
    }
}

resourceName将类似于MyNamespace.Myfile.txt。如果在查找资源名称时遇到问题,则程序集上的方法GetManifestResourceNames将帮助您在调试时识别资源名称。

同样值得注意的是,如果找不到资源,上述方法将抛出异常。这应该在真实的代码中处理,但我不想将上面的示例与标准的错误处理代码混淆。

另请参阅如何阅读具有相同答案的不同问题的嵌入资源文本文件(不同之处在于它只询问流,但实际上流似乎是访问嵌入资源文件的唯一方式)。

这就是如何使用嵌入式文件Properties.Resources.yourfilename