public void WriteFile (string filename, long offset, long size)
{
if (filename == null)
throw new ArgumentNullException ("filename");
if (offset < 0)
throw new ArgumentNullException ("offset can not be negative");
if (size < 0)
throw new ArgumentNullException ("size can not be negative");
if (size == 0)
return;
FileStream fs = File.OpenRead (filename);
WriteFile (fs, offset, size);
if (buffer)
return;
output_stream.ApplyFilter (false);
Flush ();
}