Как создать файл из встроенного источника в указанное пользователем место? - PullRequest
0 голосов
/ 27 февраля 2012

Я вложил в качестве ресурса файл конфигурации 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 голосов
/ 27 февраля 2012

Использование StreamReader и StreamWriter .

Пример:

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