terça-feira, 15 de dezembro de 2015

C# Escreve um arquivo com nome randômico em um diretório

        /// <summary>Escreve um arquivo com nome randômico em um diretório envido pelo parâmetro pCaminho
        /// </summary>
        /// <param name="pCaminho">Caminho completo onde será gravado o arquivo</param>
        /// <param name="pConteudo">Conteúdo que será gravado</param>
        /// <example>
        /// <code>
        /// string iPath = Server.MapPath("Err/");
        /// Geral.EscreverArquivo(iPath, iBody + iForm);
        /// </code>
        /// </example>
        /// <remarks>Caso ocorrer erro nesta rotina não será retornado nenhum erro</remarks>
        /// <remarks>Caso não enviado o caminho, nos testes o arquivo foi gerado mesmo assim na pasta:
        /// <code>C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\DevServer\10.0\</code>
        /// </remarks>
        public static void EscreverArquivoRND(string pCaminho, string pConteudo)
        {
            EscreverArquivoRND(pCaminho, pConteudo, false, "html");
        }

        /// <summary>Escreve um arquivo com nome randômico em um diretório envido pelo parâmetro pCaminho
        /// </summary>
        /// <param name="pCaminho">Caminho completo onde será gravado o arquivo</param>
        /// <param name="pConteudo">Conteúdo que será gravado</param>
        /// <param name="pRetornaErro">Define se será retornado erro caso este aconteça</param>
        /// <param name="pExtensao">Define extensão do arquivo a ser gerado, caso informado vazio será utilizado 'html', OBS.: não é
        /// necessário informa o ponto ".html", somente "html", "txt", etc</param>
        /// <remarks>Caso não enviado o caminho, nos testes o arquivo foi gerado mesmo assim na pasta:
        /// <code>C:\Arquivos de programas\Arquivos comuns\Microsoft Shared\DevServer\10.0\</code>
        /// </remarks>
        public static void EscreverArquivoRND(string pCaminho, string pConteudo, bool pRetornaErro, string pExtensao)
        {
            try
            {

                if (!String.IsNullOrEmpty(pCaminho) && !System.IO.Directory.Exists(pCaminho))
                    System.IO.Directory.CreateDirectory(pCaminho);

                string iExtensao = ".html";
                if (!String.IsNullOrEmpty(pExtensao))
                    iExtensao = "." + pExtensao;
                pCaminho = Path.Combine(pCaminho, Path.ChangeExtension(Path.GetRandomFileName(), iExtensao));

                using (StreamWriter sw = new StreamWriter(pCaminho))
                {
                    sw.WriteLine(pConteudo);
                }
            }
            catch (Exception)
            {//case occurs error, don't stop, will continue, to sending e-mail
                if (pRetornaErro)
                    throw;
            }
        }

Nenhum comentário:

Postar um comentário