使用.NET追加到大文件时,如何避免过多的网络文件I/O?

Bra*_*Voy 7 .net c# file-io networking

我有一个程序打开一个大的二进制文件,向它添加少量数据,并关闭该文件.

FileStream fs = File.Open( "\\\\s1\\temp\\test.tmp", FileMode.Append, FileAccess.Write, FileShare.None );
fs.Write( data, 0, data.Length );
fs.Close();
Run Code Online (Sandbox Code Playgroud)

如果test.tmp在运行此程序之前为5MB且数据阵列为100字节,则此程序将导致超过5MB的数据通过网络传输.我原本以为文件中的数据不会通过网络传输,因为我没有读它或写它.有什么方法可以避免这种行为吗?这使得追加非常大的文件非常缓慢.

Bra*_*Voy 2

0xA3 在上面的评论中提供了答案。性能不佳是由于按访问病毒扫描造成的。每次我的程序打开文件时,病毒扫描程序都会读取文件的全部内容来检查病毒,即使我的程序没有读取任何现有内容。禁用按访问病毒扫描消除了过多的网络 I/O 和较差的性能。

感谢大家的建议。