2012-12-22 4 views

Répondre

6

En supposant que vous voulez seulement lire une partie du fichier, quelque chose comme cela devrait fonctionner:

long offset = 0x10000000; // 256 megabytes 
long length = 100; 
using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\Test.data")) 
    { 
     using (MemoryMappedViewStream stream = CreateViewStream(offset, length)) 
     { 
      byte[length] bytes; 
      int bytesRead = stream.Read(bytes, 0, (int)length); 
     } 
    } 

Si vous voulez lire le fichier entier, vous ne devriez pas utiliser un objet dans MemoryMappedFile la première place.

+1

Notez que 'stream.Read' peut lire moins de' length' octets dans 'bytes'. – dtb

+0

@dtb Bon point, ce n'était pas clair. J'ai mis à jour ma réponse. Merci! –

+0

Savez-vous comment utiliser la même tehnique dans Compact Framework? – Kostadin

Questions connexes