jueves, 23 de abril de 2009

De Arreglo de bytes a Archivo

Hace un par de días subí como convertir una archivo a un arreglo de bytes. Ahora toca la operación inversa. Es realmente muy sencillo, lo único que debemos tener en cuenta son las cuestiones de permisos a la hora de guardar el archivo en nuestra estructura de directorios, pero para esto ya podemos impersonar temporalmente.

protected void guardaArchivo(byte[] archivo, string nombreArchivo)
{
    string excel_path = ConfigurationManager.AppSettings.Get("EXCELPATH");      
    string excel_file = nombreArchivo;

    try
    {
      excel_path = excel_path + excel_file;

      FileStream archivo_fisico = new FileStream(excel_path, FileMode.Create, FileAccess.Write);
      foreach (byte b in archivo)
      {
          archivo_fisico.WriteByte(b);
      }
      archivo_fisico.Close();
    }
    catch (Exception ex)
    {
      throw ex;
    }     
}
Ya con esto cerramos el circulo de pasar un archivo por diversas capas físicas si fuera necesario.


EDITO:
Felipo me indico que otra forma de hacerlo puede ser
byte[] buffer; //parameter

using (FileStream newFile = new FileStream(newFilePath, FileMode.Create, FileAccess.Write))
{
    newFile.Write(buffer, 0, buffer.Length);
    newFile.Flush();
    newFile.Close();
}

Gracias Felipo.

0 comentarios: