23 abr 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.

Roy {aka. Foy}

Autor & Editor

Desarrallador y líder técnico, con experiencia en tecnologías Microsoft desde los tiempos del VB6 y el asp clásico hasta el .Net Core, pasando por COM+, javascript, angularjs, Ionic, xaml, cordova, MVC, Web Api, Sql Server, Oracle... . Ávido lector, apasionado programador.