UnauthorizedAccessException na MemoryMappedFile w C # 4
Chciałem pobawić się przy użyciu MemoryMappedFile, aby uzyskać dostęp do istniejącego pliku binarnego. Jeśli to w ogóle możliwe, czy jestem szaloną osobą?
Pomysł polegałby na zmapowaniu istniejącego pliku binarnego bezpośrednio do pamięci w przypadku niektórych najlepiej działających operacji. Albo przynajmniej przekonać się, jak te rzeczy zadziałały.
using System.IO.MemoryMappedFiles;
System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\testparsercap.pcap");
MemoryMappedFileSecurity sec = new MemoryMappedFileSecurity();
System.IO.FileStream file = fi.Open(System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite);
MemoryMappedFile mf = MemoryMappedFile.CreateFromFile(file, "testpcap", fi.Length, MemoryMappedFileAccess.Read, sec, System.IO.HandleInheritability.Inheritable, true);
MemoryMappedViewAccessor FileMapView = mf.CreateViewAccessor();
PcapHeader head = new PcapHeader();
FileMapView.Read<PcapHeader>(0, out head);
Otrzymałem nieobsługiwany System.UnauthorizedAccessException (Message = Dostęp do ścieżki jest zabroniony) w linii mf.CreateViewAccessor ().
Nie sądzę, aby były to uprawnienia do plików, ponieważ pracuję jako miły niezabezpieczony użytkownik administratora i nie ma żadnych innych programów, które mogłyby mieć blokadę odczytu pliku. To jest w systemie Vista z wyłączoną funkcją UAC.
Jeśli jest to po prostu niemożliwe i przegapiłem coś w dokumentacji, daj mi znać. Ledwie mogłem znaleźć cokolwiek, co odnosi się do tej funkcji .net 4.0
Dzięki!