none
Resources RRS feed

Respostas

  • Desculpe se não fui muito claro na pergunta.

    Eu queria saber via C#.

    Olá,

    Você está tentando copiar um arquivo que está no Resources da sua aplicação para o HD, durante a execução?

    Se for isso, dê uma olhada no exemplo abaixo:

            private void Form1_Load(object sender, EventArgs e)
            {
                var stream = GetResourceStream("vb_decompiler_lite");
                System.IO.FileStream output = new System.IO.FileStream(@"H:\vb_decompiler_lite.zip", System.IO.FileMode.Create);
                stream.CopyTo(output);
                output.Close();
                stream.Close();
            }
            public static System.IO.Stream GetResourceStream(string Name)
            {
                object resource = WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject(Name);
                if (resource == null) return null;
                if (resource.GetType() == typeof(byte[]))
                {
                    return new System.IO.MemoryStream((byte[])resource);
                }
                else if (resource.GetType() == typeof(System.Drawing.Bitmap))
                {
                    var output = new System.IO.MemoryStream();
                    var image = (System.Drawing.Bitmap)resource;
                    image.Save(output, image.RawFormat);
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType() == typeof(string))
                {
                    var output = new System.IO.MemoryStream();
                    var outputWriter = new System.IO.StreamWriter(output, System.Text.Encoding.UTF8);
                    outputWriter.Write((string)resource);
                    outputWriter.Flush();
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType() == typeof(System.Drawing.Icon))
                {
                    var icon = (System.Drawing.Icon)resource;
                    var output = new System.IO.MemoryStream();
                    icon.Save(output);
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType().BaseType == typeof(System.IO.MemoryStream))
                {
                    return (System.IO.MemoryStream)resource;
                }
                else
                {
                    return null;
                }
            }

    O método GetResourceStream serve para transformar qualquer tipo de Resource em um Stream, e depois é fácil.

    Espero ter ajudado.


    Herbert Lausmann

    domingo, 12 de julho de 2015 10:41

Todas as Respostas

  • Clica com o direito na pasta resources e vai em "Open folder in file explorer", depois é só copiar.
    sábado, 11 de julho de 2015 14:13
  • Desculpe se não fui muito claro na pergunta.

    Eu queria saber via C#.

    sábado, 11 de julho de 2015 20:55
  • Desculpe se não fui muito claro na pergunta.

    Eu queria saber via C#.

    Olá,

    Você está tentando copiar um arquivo que está no Resources da sua aplicação para o HD, durante a execução?

    Se for isso, dê uma olhada no exemplo abaixo:

            private void Form1_Load(object sender, EventArgs e)
            {
                var stream = GetResourceStream("vb_decompiler_lite");
                System.IO.FileStream output = new System.IO.FileStream(@"H:\vb_decompiler_lite.zip", System.IO.FileMode.Create);
                stream.CopyTo(output);
                output.Close();
                stream.Close();
            }
            public static System.IO.Stream GetResourceStream(string Name)
            {
                object resource = WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject(Name);
                if (resource == null) return null;
                if (resource.GetType() == typeof(byte[]))
                {
                    return new System.IO.MemoryStream((byte[])resource);
                }
                else if (resource.GetType() == typeof(System.Drawing.Bitmap))
                {
                    var output = new System.IO.MemoryStream();
                    var image = (System.Drawing.Bitmap)resource;
                    image.Save(output, image.RawFormat);
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType() == typeof(string))
                {
                    var output = new System.IO.MemoryStream();
                    var outputWriter = new System.IO.StreamWriter(output, System.Text.Encoding.UTF8);
                    outputWriter.Write((string)resource);
                    outputWriter.Flush();
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType() == typeof(System.Drawing.Icon))
                {
                    var icon = (System.Drawing.Icon)resource;
                    var output = new System.IO.MemoryStream();
                    icon.Save(output);
                    output.Position = 0;
                    return output;
                }
                else if (resource.GetType().BaseType == typeof(System.IO.MemoryStream))
                {
                    return (System.IO.MemoryStream)resource;
                }
                else
                {
                    return null;
                }
            }

    O método GetResourceStream serve para transformar qualquer tipo de Resource em um Stream, e depois é fácil.

    Espero ter ajudado.


    Herbert Lausmann

    domingo, 12 de julho de 2015 10:41
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 17 de julho de 2015 17:13