2

我已经在我的代码中嵌入了一个资源,我想阅读文本并将文本应用于一些字符串变量。当我使用外部文件时,我已经想出了如何做到这一点,但我只想要 .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(最好没有新程序)

4

2 回答 2

3

该类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程序集上的方法将帮助您在调试时识别它。

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

另请参阅How to read embedded resource text file for a different question with the same answer(不同之处在于它只询问流,但实际上流似乎是访问嵌入资源文件的唯一方法)。

于 2013-08-28T17:50:06.297 回答
0

这是您可以使用嵌入文件的方式Properties.Resources.yourfilename

于 2013-08-28T16:23:06.537 回答