Recuperando arquivos do Resource do Projeto

Veja neste artigo como recuperar arquivos do resource do projeto.

Recuperando arquivos do Resource do Projeto

 
Bom pessoal, para quem precisa utilizar um arquivo seja ele imagem, dll, ou qualquer outro tipo de arquivo e para isto está tendo que colocá-lo na pasta junto com o executável, este artigo pode dar uma idéia bem prática para resolver esta situação.

Hoje, quando inserimos alguma imagem ou arquivo, o Visual Studio já inclui no projeto uma pasta Resources como pode ser visto na Figura 1.
      


Figura 1
– Pasta resources gerado pelo VS ao incluir arquivo no resources do projeto

Os arquivos contidos nesta pasta podem ser recuperados em qualquer lugar do projeto, podendo ser lido, apresentado ou copiado para algum diretório.

Para que possamos recuperar este arquivo, temos que seguir as seguintes regras:

 - A propriedade Build Action dos arquivos deve estar marcada como Embedded Resource, para configurar é necessário visualizar as propriedades do arquivo e selecionar este valor, como pode ser visto na Figura 2.

- Todas as classes do projeto podem recuperar estes arquivos, exceto as classes Estáticas.


Figura 2 – Configurando a propriedade Build Action dos arquivos do Resources

Uma vez realizada as configurações dos arquivos, nos resta agora gerar o código para que se possa recuperar o stream do arquivo que está no Resource e pronto. Para isto será necessário implementar o código que está na Listagem 1

No exemplo da Listagem 1, no evento de um botão está a chamada para recuperar o arquivo do resource, note que o caminho do arquivo que deve ser passado é Nome do Projeto + Resource + Nome do arquivo.

O comando retornará um Stream, que no exemplo é uma imagem que será apresentada em um pictureBox, mas poderia ser salvo em disco, ou apresentado em outro componente.

Sendo assim, para que se possa incluir um arquivo de texto, de configuração seria a mesma lógica, a partir do momento que você consegue recuperar o Stream, a finalidade vai depender de você.

Listagem 1 – Recuperando arquivo a partir do Resource do Projeto

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

private void button1_Click(object sender, EventArgs e)

{

  Stream arquivo = this.GetType().Assembly.GetManifestResourceStream(
                        "RecAqruivo.Resources.Inverno.jpg");

 pictureBox1.Image = new Bitmap(arquivo);

}

Conclusão
Para recuperar arquivos do Resource de um projeto, basta incluí-lo, setar a propriedade Build Action para Embedded Resource e recuperá-lo de qualquer classe que não seja estática.

Artigos relacionados