Páginas

quarta-feira, 9 de maio de 2012

Salvar arquivos em C#

No Asp classico, para salvar um arquivo no site era um sufoco, tinha que ter componentes, tinha que dar permissao, tinha que faz um monte de coisa e codigo.
Não estou falando mau da linguagem, mesmo porque ela é muito antiga e foi abandonada, entao para a epoca que foi concebida, era excelente.
Porem hoje em dia com o C# a coisa fica absurdamente facil, quando eu fiz meu primeiro upload nao achei fontes relativamente faceis para eu poder entender completamente logo na primeira vez, entao quero postar algo que eu acredito seja muito facil entender e tambem, acaba sendo uma classe facil de portar para qquer projeto.
No sistema em questao eu precisava gerar um nome unico pro arquivo salvo (acho que esse requisito é necessário na maioria das vezes)
Para tanto eu crio a classe que utiliza HttpPostedFileBase (mais informações aqui)
O System.DateTimeOffset.Now.Ticks calcula quantos segundos existiram desde 01/01/1900 entao desde que os segundos so se acumulam, acaba sendo na minha opinião um valor unico para nome de arquivo, mesmo que existem dois uploads simultaneos nao consigo ver como eles seriam feitos exatamente no mesmo segundo, e para melhorar mais o nome original do arquivo, tbm é salvo, entao a possibilidade de dois arquivos exatamente com o mesmo nome é quase nula, em outro post colocarei como obter isso de outras formas
mais informações sobre o System.DateTimeOffset.Now.Ticks aqui
aqui esta o codigo:

        public string SalvaArquivo(HttpPostedFileBase Postado, string Caminho)
        {
            string NomeArquivo = System.DateTimeOffset.Now.Ticks.ToString() + Path.GetFileName(Postado.FileName);
            Postado.SaveAs(Caminho + NomeArquivo);
            return NomeArquivo.ToString();
        }

Espero ter ajudado...

Nenhum comentário:

Postar um comentário