Tengo un programa que abre un archivo binario grande, le agrega una pequeña cantidad de datos y cierra el archivo.¿Cómo evito las E/S excesivas de archivos de red al agregarlas a un archivo grande con .NET?
FileStream fs = File.Open("\\\\s1\\temp\\test.tmp", FileMode.Append, FileAccess.Write, FileShare.None);
fs.Write(data, 0, data.Length);
fs.Close();
Si test.tmp es de 5 MB antes de que este programa se ejecuta y la matriz de datos es de 100 bytes, este programa causará más de 5 MB de datos a transmitir a través de la red. Hubiera esperado que los datos que ya estaban en el archivo no se transmitieran a través de la red ya que no los leo ni los escribo. ¿Hay alguna forma de evitar este comportamiento? Esto hace que sea terriblemente lento para anexar archivos muy grandes.
¿Ha probado el método FileStream.Seek en su lugar? – ChrisW
¿Hay un escáner antivirus activo que realice una comprobación de acceso? –
Puede agregar cierta información sobre su objetivo final (es decir, un sistema de registro o herramienta de informe de datos), ya que los usuarios pueden tener algunas sugerencias que quizás no hayan considerado. –