c# - utilizado - el proceso no tiene acceso al archivo porque otro proceso tiene bloqueada una parte del archivo
El proceso no puede acceder al archivo porque lo está usando otro proceso (2)
Estoy tratando de leer un archivo de registro de log4net:
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)
y obtengo la excepción especificada sobre el tema. Supongo que log4Net mantiene un bloqueo exclusivo en el archivo, pero, como por ejemplo Notepad ++ puede leer el archivo, creo que es técnicamente posible hacerlo.
¿Alguna ayuda?
Intente agregar la opción FileShare, vea si eso ayuda:
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
EDITAR: código corregido, no FileShare.Read
pero FileShare.ReadWrite
hace el truco (como Guillaume mostró también). El motivo: desea abrir su archivo y permitir que otros lo lean y lo escriban al mismo tiempo.
using (FileStream fs =
new FileStream(filePath,
FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
//...
http://msdn.microsoft.com/en-us/library/system.io.fileshare.aspx
Su registro puede estar bloqueado, así que intente con FileShare.ReadWrite.