Desbloquear archivo

19/03/2007 - 08:35 por Cdiaza | Informe spam
Saludos!

Tengo una pequeña aplicación que tiene una función que crea un log y
un archivo de audio wav, en el momento que crea cada uno de esos
archivos llamo a una función que envía por email esos archivos que se
han creado, tanto el log de tipo txt como el archivo de audio tipo
wav. El problema que tengo es que cuando hago el envío de correo con
esos archivos (log y audio) como datos adjuntos, estos archivos se me
quedan bloqueados, y no puedo moverlos ni borrarlos. Sólo cuando paro
la aplicación puedo mover o borrar los archivos, pero no me interesa
parar la aplicación, puesto que es un servicio que no se debe parar.

Ahora la pregunta es:¿Existe alguna manear de desbloquear estos
archivos sin tener que parar la aplicación?¿Cómo?

Muchas gracias por adelantado
 

Leer las respuestas

#1 Alberto Poblacion
19/03/2007 - 09:28 | Informe spam
"Cdiaza" wrote in message
news:
Tengo una pequeña aplicación que tiene una función que crea un log y
un archivo de audio wav, en el momento que crea cada uno de esos
archivos llamo a una función que envía por email esos archivos que se
han creado, tanto el log de tipo txt como el archivo de audio tipo
wav. El problema que tengo es que cuando hago el envío de correo con
esos archivos (log y audio) como datos adjuntos, estos archivos se me
quedan bloqueados, y no puedo moverlos ni borrarlos. Sólo cuando paro
la aplicación puedo mover o borrar los archivos [...]
Ahora la pregunta es:¿Existe alguna manear de desbloquear estos
archivos sin tener que parar la aplicación?¿Cómo?



Normalmente cuando te ocurre eso es porque los archivos se te han
quedado abiertos. Tendrías que revisar la forma en que los creas, a ver si
se te escapa el Close() en algún sitio.

Si los archivos los estás creando únicamente para mandarlos como
adjuntos por correo, y estás usando System.Net.Mail para enviar los correos,
hay una alternativa mejor: en lugar de usar un FileStream para enviarlos a
un archivo en disco, usa un MemoryStream para crearlos en memoria. Cuando
acabes, ponle .Position=0 al Stream, y crea el Attachment con la sobrecarga
del constructor que recibe un Stream en lugar de un archivo. De esta forma
no tienes que preocuparte de borrar los archivos del disco.

Preguntas similares