将文件附加到Winform并在运行exe c#

时间:2017-01-26 23:27:03

标签: c# winforms

是否可以将文本文件资源附加到我的Winform exe。因此,当我在另一台计算机上运行“Form.exe”时,它会将文本文件复制到指定的文件夹。请建议一种方法来实现同样的目的。感谢

3 个答案:

答案 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)

首先,您需要将文件添加为项目中的资源。

This explains what to do

然后选择您的文件并在属性中更改"构建操作"到"嵌入式资源"。现在,这将在您的输出(.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)

  1. 将文本文件添加到项目资源

    Properties -> Resources -> Add Resource
    
  2. 使用

    从资源中读取数据
    var text = Properties.Resources.textFile;
    
  3. 使用

    写入文件
    File.WriteAllText(@"C:\test\testOut.txt", text);