C# 获取文本文件资源的引用
如果我将新文本文件添加到我的项目C# 获取文本文件资源的引用,c#,resources,C#,Resources,如果我将新文本文件添加到我的项目regexCheck.txt中,它的默认生成操作是作为资源: 我知道,如果我将选项设置为“复制到输出dicectory=always”,我将能够检索该文本文件的内容,然后我将能够在workingDirectory\Macros\Header\regexCheck.txt 我只是好奇,我将如何能够检索该文本文件的内容,而不必将其输出到工作目录 编辑 例如,relector可以查看我的可执行文件的所有资源: 我知道我可以将文件放在resource.resx中,我
regexCheck.txt
中,它的默认生成操作是作为资源:
我知道,如果我将选项设置为“复制到输出dicectory=always”,我将能够检索该文本文件的内容,然后我将能够在workingDirectory\Macros\Header\regexCheck.txt
我只是好奇,我将如何能够检索该文本文件的内容,而不必将其输出到工作目录
编辑 例如,relector可以查看我的可执行文件的所有资源: 我知道我可以将文件放在
resource.resx
中,我只是想知道如何从exe中提取资源
编辑2
做一些类似于:
var _assembly = Assembly.GetExecutingAssembly();
var resourceName = _assembly.GetManifestResourceNames()[0];
var steam = _assembly.GetManifestResourceStream(resourceName);
var buffer = new byte[2048];
steam.Read(buffer, 0, buffer.Length);
var text = System.Text.ASCIIEncoding.ASCII.GetString(buffer).Replace("\0", "");
我设法查看了文本文件的内容:
我认为您目前无法使用将文件附加到项目的方式 另一种方法是向项目中添加“资源文件”。(项目->添加新项目…->资源文件)。然后可以在资源文件设计器中添加文本文件(添加资源->添加现有文件…) 最终,您将看到一个类似以下内容的项目树:
Project
|
+-- Resources
| |
| +-- regexCheck.txt
|
+-- Resource.resx
| |
| +-- Resource.Designer.cs
在您的代码
资源中。regexCheck
是一个包含文件内容的字符串。我将构建操作从资源更改为嵌入资源
我可以通过以下方式获得内容:
var fileName = "regexCheck.txt";
var currentNamespace = typeof(this).Namespace; // if static class use name of class
var fullName = currentNamespace + "." + fileName;
Func<string,Stream> getResStream =
x => Assembly.GetExecutingAssembly().GetManifestResourceStream(x);
using (Stream stream = getResStream(fullName))
using (StreamReader reader = new StreamReader(stream))
string result = reader.ReadToEnd(); // <------ Result should be the content of text file
var fileName=“regexCheck.txt”;
var currentNamespace=typeof(this).Namespace;//如果是静态类,请使用类的名称
var fullName=currentNamespace+“+”文件名;
Func getResStream=
x=>Assembly.getExecutionGassembly().GetManifestResourceStream(x);
使用(Stream=getResStream(全名))
使用(StreamReader=新StreamReader(stream))
字符串结果=reader.ReadToEnd();//以下是一个示例: