Кажется, что System.IO.File.AppendText открывает файл для доступа на запись и просто ищет его до конца. Проверка кода с помощью Reflector должна подтвердить это, как и быстрая точка останова на kernel32! CreateFileW с WinDbg.
Программа:
class Program
{
static void Main(string[] args)
{
System.IO.File.AppendText(@"C:\Temp\blah").WriteLine("Boo");
}
}
Точка останова:
KERNEL32!CreateFileW:
757322fb 8bff mov edi,edi
0:000> dd esp
002cf1a8 58741b05 022ab244 40000000 00000001
002cf1b8 00000000 00000004 08100000 00000000
002cf1c8 14236e28 59e65d80 002cf270 0000001c
0:000> du 022ab244
022ab244 "C:\Temp\blah"
Параметр dwDesiredAccess - 0x40000000, то есть GENERIC_WRITE.
Скорее всего, вам придется создать FileStream самостоятельно:
new FileStream("blah", FileMode.Open, System.Security.AccessControl.FileSystemRights.AppendData, ...)