Estoy intentando descargar un archivo desde la web y guardarlo localmente, pero me da una excepción:C Excepción archivo #: no tiene acceso al archivo porque está siendo utilizado por otro proceso
C# El proceso no se puede acceder al archivo 'blah' porque está siendo utilizado por otro proceso.
Este es mi código:
File.Create("data.csv"); // create the file
request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
request.Timeout = 30000;
response = (HttpWebResponse)request.GetResponse();
using (Stream file = File.OpenWrite("data.csv"), // <-- Exception here
input = response.GetResponseStream())
{
// Save the file using Jon Skeet's CopyStream method
CopyStream(input, file);
}
que he visto muchas otras preguntas con la misma excepción, pero ninguno de ellos parecen aplicarse aquí. ¿Alguna ayuda?
Actualización:
¡Gracias por las respuestas! Eliminar el File.Create(...)
lo arregló!
Un comentario sobre la documentación de OpenWrite
: es un poco engañoso, la breve descripción dice:
Abre un archivo existente para la escritura.
La descripción detallada dice:
Si el archivo existe, se abre para escrito al principio. El archivo existente no está truncado.
Actualización 2.0:
Parece que la discrepancia entre IntelliSense/F1 y la documentación en línea. Pensé que debería ser el mismo ya que permití que F1 se conectara a la web cuando mostraba documentación.
¿Por qué necesita File.Create ("data.csv") si está utilizando File.OpenWrite ("data.csv")? – systempuntoout
@systempuntoout Debido a una documentación incorrecta ... "Abre un archivo existente para escribir". Eso me hizo asumir que tenía que crear el archivo antes de intentar usar el método. – Kiril