如何从嵌入源创建文件到用户指定的位置?

时间:2012-02-27 10:41:57

标签: c# reflection nlog

我已将nlog配置文件作为资源嵌入。 我正在尝试将日志文件创建到用户指定的位置。 但是Nlog要求nlog配置文件存在于用户指定的位置。 所以我想在开始编写日志文件之前,将nlog配置文件创建到用户指定的位置。 所以为此,我将nlog配置文件作为资源嵌入。但我现在的问题是如何编写将此嵌入式源写入用户指定的位置。 我发布了我提出的代码

Assembly _assembly;
Stream _config;
// StreamReader _textStreamReader;
try
{
        _assembly = Assembly.GetExecutingAssembly();
        _config = _assembly.GetManifestResourceStream("XXX.NLog.config");
        // _textStreamReader = new  StreamReader(_assembly.GetManifestResourceStream("XXX.NLog.config"));

        using (Stream output = File.Open(config.LogFileFolder, FileMode.Create))
        {
               byte[] buffer = new byte[8 * 1024];
               int len;
               while ((len = _config.Read(buffer, 0, buffer.Length)) > 0)
               {
                      output.Write(buffer, 0, len);
               }
         }

}
catch
{
        MessageBox.Show("Error accessing resources!");
}   

1 个答案:

答案 0 :(得分:0)

使用 StreamReader StreamWriter

示例:

    using (StreamReader reader =
        new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(defaultContentResourceName)))
    {
        using (StreamWriter writer = new StreamWriter(targetPath))
        {
            writer.Write(reader.ReadToEnd());
        }
    }