Ho un programma che apre un file binario di grandi dimensioni, aggiunge una piccola quantità di dati e chiude il file.Come evitare un I/O file di rete eccessivo durante l'aggiunta a un file di grandi dimensioni con .NET?
FileStream fs = File.Open("\\\\s1\\temp\\test.tmp", FileMode.Append, FileAccess.Write, FileShare.None);
fs.Write(data, 0, data.Length);
fs.Close();
Se test.tmp è 5MB prima questo programma è eseguito e la schiera di dati è di 100 byte, questo programma causerà oltre 5 MB di dati da trasmettere attraverso la rete. Mi sarei aspettato che i dati già nel file non venissero trasmessi attraverso la rete poiché non li sto leggendo o scrivendo. C'è un modo per evitare questo comportamento? Questo lo rende tremendamente lento da aggiungere a file molto grandi.
Hai provato invece il metodo FileStream.Seek? – ChrisW
È attivo uno scanner antivirus che esegue un controllo all'accesso? –
Potresti aggiungere alcune informazioni sul tuo obiettivo finale (ad esempio un sistema di registrazione o uno strumento di reporting dei dati) poiché gli utenti potrebbero avere alcuni suggerimenti che potresti non aver considerato. –