Es posible, pero debe controlar cuidadosamente el intercambio de archivos que especifique. La mayoría de las clases de .NET predeterminan FileShare.Read, denegando que otro proceso escriba en el archivo. Pero eso no puede funcionar si Excel abre el archivo, ya obtuvo acceso de escritura a él. No puede negar un derecho que ya fue adquirido.
Para solucionar el problema, hacer que su código de aspecto similar a este:
using (var fs = new FileStream(@"c:\\temp\\test.csv", FileMode.Open,
FileAccess.Read, FileShare.ReadWrite))
using (var sr = new StreamReader(fs)) {
// Read it...
}
Nota el uso de FileShare.ReadWrite. Verifiqué que este código funciona mientras Excel tenía test.csv abierto.
Tenga cuidado con los problemas potenciales que invitará con esto, pueden ocurrir cosas raras cuando Excel escribe en el archivo justo cuando lo está leyendo. Es probable que lea basura, parte de datos antiguos, parte de los nuevos, sin una buena forma de diagnosticar esto.
favor publicar algo de código para mostrarnos lo que ha hecho hasta ahora – Woot4Moo
Este es el código: using (FileStream fs = new FileStream (csvOpenFileDialog.FileName, FileMode.Open, FileAccess.Read)) –
Te estás perdiendo una discusión. Lee mi respuesta – Nayan