Как скопировать файл из ресурсов? - PullRequest
12 голосов
/ 31 августа 2011

У меня есть файл встроенных ресурсов, например: file.exe как скопировать в каталог, например: c:\?при нажатии кнопки спасибо

1 Ответ

24 голосов
/ 31 августа 2011

Вы можете использовать Assembly.GetManifestResourceStream, чтобы получить поток для чтения вашего ресурса.Затем просто скопируйте его в FileStream.Если вы используете .NET 4, вы можете использовать Stream.CopyTo, чтобы сделать это легко:

private void CopyResource(string resourceName, string file)
{
    using (Stream resource = GetType().Assembly
                                      .GetManifestResourceStream(resourceName))
    {
        if (resource == null)
        {
            throw new ArgumentException("No such resource", "resourceName");
        }
        using (Stream output = File.OpenWrite(file))
        {
            resource.CopyTo(output);
        }
    }
}
...