我已将资源嵌入到我的代码中,我想阅读文本并将文本应用于某些字符串变量。当我使用外部文件但我只想要.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 (最好没有新程序)
答案 0 :(得分: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以获得具有相同答案的不同问题(不同之处在于它仅询问流,但实际上流似乎是访问嵌入式资源文件的唯一方式)。
答案 1 :(得分:0)
这是您使用嵌入式文件Properties.Resources.yourfilename