hola amigos tengo un problema con el borrado de archivos a la primera instancia no se borra nada porque no creo el archivo, despues de crearlo lo borrar pero a la tercera vez sale un error
diciendo que no se puede eliminar porque esta en otro proceso....
alguien me ayuda?¿¿
Código:
public string DecodificarFoto (string sBase64) {
// Declaramos fs para tener crear un nuevo archivo temporal en la maquina cliente.
// y memStream para almacenar en memoria la cadena recibida.
if (System.IO.File.Exists(@"c:\foto.jpg"))
{
System.IO.File.Delete(@"c:\foto.jpg");
}
string sImagenTemporal = @"c:\foto.jpg";
FileStream fs = new FileStream(sImagenTemporal, FileMode.Create);
BinaryWriter bw = new BinaryWriter (fs);
byte[] bytes;
try {
bytes = Convert.FromBase64String (sBase64);
bw.Write (bytes);
return sImagenTemporal;
}
catch {
MessageBox.Show("Ocurrió un error al leer la imgen.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
return sImagenTemporal= @"c:\no-disponible.jpg";
}
finally {
fs.Close();
bytes = null;
bw = null;
sBase64 = null;
}
}
public string CodificarFoto (string sNombreArchivo)
{
string sBase64 = "";
// Declaramos fs para tener acceso a la imagen residente en la maquina cliente.
FileStream fs = new FileStream(sNombreArchivo, FileMode.Open);
// Declaramos un Leector Binario para accesar a los datos de la imagen pasarlos a un arreglo de bytes
BinaryReader br = new BinaryReader(fs);
byte[] bytes = new byte[(int)fs.Length];
try
{
br.Read(bytes, 0, bytes.Length);
// base64 es la cadena en donde se guarda el arreglo de bytes ya convertido
sBase64 = Convert.ToBase64String (bytes);
return sBase64;
}
catch
{
MessageBox.Show("Ocurri un error al cargar la fotografa.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
return null;
}
// Se cierran los archivos para liberar memoria.
finally
{
fs.Close();
fs = null;
br = null;
bytes = null;
}
}