从C#资源中读取文本文件
我需要从我的资源中读取一个文件并将其添加到列表中。 我的代码:从C#资源中读取文本文件,c#,file-io,resources,streamreader,C#,File Io,Resources,Streamreader,我需要从我的资源中读取一个文件并将其添加到列表中。 我的代码: 我搜索了这个,只得到了像“Assembly.getExecutionGassembly…”这样的答案,但我的程序没有汇编选项。?试试这样的方法: string resource_data = Properties.Resources.test; List<string> words = resource_data.Split(new[] {Environment.NewLine}, StringSplitOptions.
我搜索了这个,只得到了像“Assembly.getExecutionGassembly…”这样的答案,但我的程序没有汇编选项。?试试这样的方法:
string resource_data = Properties.Resources.test;
List<string> words = resource_data.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).ToList();
string resource\u data=Properties.Resources.test;
List words=resource_data.Split(new[]{Environment.NewLine},StringSplitOptions.removemptyentries.ToList();
在哪里
您需要使用System.Reflection包含
在标题中输入code>,以便访问程序集。这仅适用于在VS中将文件标记为“嵌入式资源”的情况
只要您包括“使用System.Reflection;”您可以如下方式访问程序集:
Assembly.GetExecutingAssembly().GetManifestResourceStream("YourNamespace." + filename);
using(var reader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("myProg.myText.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// Do some stuff here with your textfile
}
}
或者,如果您不需要更改文件名,只需使用:
Assembly.GetExecutingAssembly().GetManifestResourceStream("YourNamespace.MyFile.txt");
完整代码应如下所示:
Assembly.GetExecutingAssembly().GetManifestResourceStream("YourNamespace." + filename);
using(var reader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("myProg.myText.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
// Do some stuff here with your textfile
}
}
接下来,AppDeveloper解决方案就是一条出路
string resource_data = Properties.Resources.test;
string [] words = resource_data.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
foreach(string lines in words){
.....
}
您将资源文件作为字节数组获取,因此可以使用writealBytes创建新文件。如果您不知道在哪里可以写入文件(权限和访问的原因),您可以使用Path.GetTempPath()使用PC临时文件夹写入新文件,然后您可以从那里复制或工作。是否使用System.Reflection添加了代码>在页面顶部?您有什么问题?我读到这将工作新的StreamReader(Assembly.GetExecutionGassembly.GetNamedResourceStream(“[program namespace].Thresh Dress.txt”)
但它没有选项。GetNamedResourceStream
请确保在名称空间中键入时使用下划线而不是空格。如果仍需要说明,请向上滚动到代码顶部,并在代码顶部显示名称空间的位置使用该名称空间。StreamReader reader=new StreamReader(Assembly.getExecutionGassembly().GetManifestResourceStream(“myProg.myText.txt”){
这里唯一的选项是BaseStream和CurrentEncoding`}通过调用这些方法,您还可以尝试清理项目并重新启动VS。
[TestCategory("THISISATEST")]
public void TestResourcesReacheability()
{
byte[] x = NAMESPACE.Properties.Resources.ExcelTestFile;
string fileTempLocation = Path.GetTempPath() + "temp.xls";
System.IO.File.WriteAllBytes(fileTempLocation, x);
File.Copy(fileTempLocation, "D:\\new.xls");
}