私はMemoryMappedFileを使って既存のバイナリファイルにアクセスして遊びたがっていました。これがすべて可能であっても、私は狂った人ですか?C#4のMemoryMappedFileのUnauthorizedAccessException
考えられるのは、既存のバイナリファイルをメモリに直接マップして、高速処理を行うことです。または、これらの事がどのように機能したかを少なくとも見てください。
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);
私はSystem.UnauthorizedAccessExceptionを取得するには、mf.CreateViewAccessor()の行に(パスへのメッセージ=アクセスが拒否されました。)未処理でした。
私は安全ではない管理者ユーザーとして実行しているので、ファイルアクセス権とは思えません。ファイルに読み取りロックが設定されている他のプログラムはありません。これはVista上でUACが無効になっています。
ドキュメントで何かが見当たりませんでしたが、私に教えてください。私はほとんど何も見つけることができませんでした.net 4.0のこの機能を参照してください。
ありがとう!
、 '' –