Exemple #1
0
        public void GuardarArchivoFisico(InformationDocumento archivo)
        {
            if (archivo == null)
            {
                return;
            }
            //log de el problema

            if (!archivo.ValidarSiUnDocumentoPuedeSerCreado())
            {
                return;
            }
            //log de el problema

            try
            {
                _directorioTrabajo = Path.Combine(_directorio, archivo.PathAdicional);
                if (!Directory.Exists(_directorioTrabajo))
                {
                    DirectoryInfo directoryInfo = Directory.CreateDirectory(_directorioTrabajo);
                }

                string filename = Path.Combine(_directorioTrabajo, archivo.NombreArchivo);
                using (FileStream fileStream = new FileStream(filename, FileMode.Create))
                {
                    // Write the data to the file, byte by byte.
                    for (int i = 0; i < archivo.DocumentoBinario.Length; i++)
                    {
                        fileStream.WriteByte(archivo.DocumentoBinario[i]);
                    }

                    // Set the stream position to the beginning of the file.
                    fileStream.Seek(0, SeekOrigin.Begin);


                    // Read and verify the data.
                    for (int i = 0; i < fileStream.Length; i++)
                    {
                        if (archivo.DocumentoBinario[i] != fileStream.ReadByte())
                        {
                            //TODO: log el problema
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //TODO: Log the error
                return;
            }
        }
Exemple #2
0
        public byte[] TraerArchivoFisico(InformationDocumento archivo)
        {
            if (archivo == null)
            {
                //TODO: log the error
                return(new byte[0]);
            }

            try
            {
                _directorioTrabajo = Path.Combine(_directorio, archivo.PathAdicional);
                if (!File.Exists(_directorioTrabajo))
                {
                    //TODO: log the error
                    return(new byte[0]);
                }

                using (FileStream fsSource = new FileStream(_directorioTrabajo, FileMode.Open, FileAccess.Read))
                {
                    // Read the source file into a byte array.
                    byte[] bytes          = new byte[fsSource.Length];
                    int    numBytesToRead = (int)fsSource.Length;
                    int    numBytesRead   = 0;
                    while (numBytesToRead > 0)
                    {
                        // Read may return anything from 0 to numBytesToRead.
                        int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);

                        // Break when the end of the file is reached.
                        if (n == 0)
                        {
                            break;
                        }

                        numBytesRead   += n;
                        numBytesToRead -= n;
                    }
                    numBytesToRead = bytes.Length;
                    return(bytes);
                }
            }
            catch (Exception ioEx)
            {
                //TODO: log the error
                return(new byte[0]);
            }
        }