是否可以将文本文件资源附加到我的Winform exe。因此,当我在另一台计算机上运行“Form.exe”时,它会将文本文件复制到指定的文件夹。请建议一种方法来实现同样的目的。感谢
答案 0 :(得分:3)
如果资源名称是字符串:
var assembly = Assembly.GetExecutingAssembly();
using (var stream = assembly.GetManifestResourceStream(resourceName))
using (var reader = new StreamReader(stream))
{
string text = reader.ReadToEnd();
File.WriteAllText(fileName, text);
}
否则:
File.WriteAllText(fileName, Properties.Resources.TextFile1);
并确保您已将资源文件的Build Action设置为" Embedded Resource"。
答案 1 :(得分:1)
首先,您需要将文件添加为项目中的资源。
然后选择您的文件并在属性中更改"构建操作"到"嵌入式资源"。现在,这将在您的输出(.exe)中嵌入您的文件。
要提取文件,您需要执行以下操作;
String myProject = "Name of your project";
String file = "Name of your file to extract";
String outputPath = @"c:\path\to\your\output";
using (System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(myProject + ".Resources." + file))
{
using (System.IO.FileStream fileStream = new System.IO.FileStream(outputPath + "\\" + file, System.IO.FileMode.Create))
{
for (int i = 0; i < stream.Length; i++)
{
fileStream.WriteByte((byte)stream.ReadByte());
}
fileStream.Close();
}
}
理想情况下,在执行此操作之前,应检查该文件是否已存在。不要忘记捕捉异常。在处理文件系统时这可能很常见。
答案 2 :(得分:0)
将文本文件添加到项目资源
Properties -> Resources -> Add Resource
使用
从资源中读取数据var text = Properties.Resources.textFile;
使用
写入文件File.WriteAllText(@"C:\test\testOut.txt", text);