MemoryMappedFile.CreateFromFile Methode

Definitie

Hiermee maakt u een geheugentoewijzingsbestand op basis van een bestaand bestand.

Overloads

Name Description
CreateFromFile(String)

Hiermee maakt u een geheugentoewijzingsbestand op basis van een bestand op schijf.

CreateFromFile(String, FileMode)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus van een bestand op schijf.

CreateFromFile(String, FileMode, String)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus en naam van een bestand op schijf.

CreateFromFile(String, FileMode, String, Int64)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus, naam en capaciteit van een bestand op schijf.

CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus, naam, capaciteit en toegangstype van een bestand op schijf.

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)

Hiermee maakt u een geheugentoewijzingsbestand op basis van een bestaand bestand met de opgegeven toegangsmodus, naam, overname en capaciteit.

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven naam, capaciteit, toegangstype, beveiligingsmachtigingen, overname- en verwijderingsvereiste van een bestand op schijf.

CreateFromFile(String)

Hiermee maakt u een geheugentoewijzingsbestand op basis van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path);
static member CreateFromFile : string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String) As MemoryMappedFile

Parameters

path
String

Het pad naar het bestand dat moet worden toegewezen.

Retouren

Een geheugentoewijzingsbestand.

Uitzonderingen

path is een lege tekenreeks, bevat alleen witruimte of heeft een of meer ongeldige tekens, zoals gedefinieerd door de GetInvalidFileNameChars() methode.

– of –

path verwijst naar een ongeldig apparaat.

path is null.

Er is een I/O-fout opgetreden.

path overschrijdt de maximale lengte die is gedefinieerd door het besturingssysteem.

De aanroeper beschikt niet over de vereiste machtigingen voor het bestand.

Voorbeelden

In het volgende voorbeeld wordt de CreateFromFile methode gebruikt om een geheugentoewijzingsbestand te maken en wordt vervolgens een geheugenweergave gemaakt die is toegewezen aan een deel van een zeer groot bestand.

using System;
using System.IO;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;

class Program
{
    static void Main(string[] args)
    {
        long offset = 0x10000000; // 256 megabytes
        long length = 0x20000000; // 512 megabytes

        // Create the memory-mapped file.
        using (var mmf = MemoryMappedFile.CreateFromFile(@"c:\ExtremelyLargeImage.data", FileMode.Open,"ImgA"))
        {
            // Create a random access view, from the 256th megabyte (the offset)
            // to the 768th megabyte (the offset plus length).
            using (var accessor = mmf.CreateViewAccessor(offset, length))
            {
                int colorSize = Marshal.SizeOf(typeof(MyColor));
                MyColor color;

                // Make changes to the view.
                for (long i = 0; i < length; i += colorSize)
                {
                    accessor.Read(i, out color);
                    color.Brighten(10);
                    accessor.Write(i, ref color);
                }
            }
        }
    }
}

public struct MyColor
{
    public short Red;
    public short Green;
    public short Blue;
    public short Alpha;

    // Make the view brighter.
    public void Brighten(short value)
    {
        Red = (short)Math.Min(short.MaxValue, (int)Red + value);
        Green = (short)Math.Min(short.MaxValue, (int)Green + value);
        Blue = (short)Math.Min(short.MaxValue, (int)Blue + value);
        Alpha = (short)Math.Min(short.MaxValue, (int)Alpha + value);
    }
}
Imports System.IO
Imports System.IO.MemoryMappedFiles
Imports System.Runtime.InteropServices

Class Program

    Sub Main()
        Dim offset As Long = &H10000000 ' 256 megabytes
        Dim length As Long = &H20000000 ' 512 megabytes

        ' Create the memory-mapped file.
        Using mmf = MemoryMappedFile.CreateFromFile("c:\ExtremelyLargeImage.data", FileMode.Open, "ImgA")
            ' Create a random access view, from the 256th megabyte (the offset)
            ' to the 768th megabyte (the offset plus length).
            Using accessor = mmf.CreateViewAccessor(offset, length)
                Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
                Dim color As MyColor
                Dim i As Long = 0

                ' Make changes to the view.
                Do While (i < length)
                    accessor.Read(i, color)
                    color.Brighten(10)
                    accessor.Write(i, color)
                    i += colorSize
                Loop
            End Using
        End Using
    End Sub
End Class

Public Structure MyColor
    Public Red As Short
    Public Green As Short
    Public Blue As Short
    Public Alpha As Short

    ' Make the view brighter.
    Public Sub Brighten(ByVal value As Short)
        Red = CType(Math.Min(Short.MaxValue, (CType(Red, Integer) + value)), Short)
        Green = CType(Math.Min(Short.MaxValue, (CType(Green, Integer) + value)), Short)
        Blue = CType(Math.Min(Short.MaxValue, (CType(Blue, Integer) + value)), Short)
        Alpha = CType(Math.Min(Short.MaxValue, (CType(Alpha, Integer) + value)), Short)
    End Sub
End Structure

Zie ook

Van toepassing op

CreateFromFile(String, FileMode)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode);
static member CreateFromFile : string * System.IO.FileMode -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode) As MemoryMappedFile

Parameters

path
String

Het pad naar het bestand dat moet worden toegewezen.

mode
FileMode

Toegangsmodus; moet zijn Open.

Retouren

Een geheugentoewijzingsbestand met de opgegeven toegangsmodus.

Uitzonderingen

path is een lege tekenreeks, bevat alleen witruimte of heeft een of meer ongeldige tekens, zoals gedefinieerd door de GetInvalidFileNameChars() methode.

– of –

path verwijst naar een ongeldig apparaat.

– of –

mode is Append.

path is null.

mode is Create, CreateNewof Truncate.

– of –

mode is OpenOrCreate en het bestand op schijf bestaat niet.

– of –

Er is een I/O-fout opgetreden.

path overschrijdt de maximale lengte die is gedefinieerd door het besturingssysteem.

De aanroeper beschikt niet over de vereiste machtigingen voor het bestand.

Opmerkingen

De mode parameter heeft betrekking op het bronbestand op schijf. U kunt alleen de Open opsommingswaarde gebruiken om het geheugentoewijzingsbestand te maken op basis van het bronbestand op schijf.

Zie ook

Van toepassing op

CreateFromFile(String, FileMode, String)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus en naam van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName);
static member CreateFromFile : string * System.IO.FileMode * string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String) As MemoryMappedFile

Parameters

path
String

Het pad naar het bestand dat moet worden toegewezen.

mode
FileMode

Toegangsmodus; moet zijn Open.

mapName
String

Een naam die moet worden toegewezen aan het geheugentoewijzingsbestand of null voor een MemoryMappedFile bestand dat u niet wilt delen tussen processen.

Retouren

Een geheugentoewijzingsbestand met de opgegeven naam en toegangsmodus.

Uitzonderingen

path is een lege tekenreeks, bevat alleen witruimte of heeft een of meer ongeldige tekens, zoals gedefinieerd door de GetInvalidFileNameChars() methode.

– of –

path verwijst naar een ongeldig apparaat.

– of –

mapName is een lege tekenreeks.

– of –

mode is Append.

path is null.

mode is Create, CreateNewof Truncate.

– of –

mode is OpenOrCreate en het bestand op schijf bestaat niet.

– of –

Er is een I/O-fout opgetreden.

path overschrijdt de maximale lengte die is gedefinieerd door het besturingssysteem.

De aanroeper beschikt niet over de vereiste machtigingen voor het bestand.

Opmerkingen

De mode parameter heeft betrekking op het bronbestand op schijf. U kunt alleen de Open opsommingswaarde gebruiken om het geheugentoewijzingsbestand te maken op basis van het bronbestand op schijf.

Van toepassing op

CreateFromFile(String, FileMode, String, Int64)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus, naam en capaciteit van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName, long capacity);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, long capacity);
static member CreateFromFile : string * System.IO.FileMode * string * int64 -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String, capacity As Long) As MemoryMappedFile

Parameters

path
String

Het pad naar het bestand dat moet worden toegewezen.

mode
FileMode

Toegangsmodus; kan een van de FileMode opsommingswaarden zijn, behalve Append.

mapName
String

Een naam die moet worden toegewezen aan het geheugentoewijzingsbestand of null voor een MemoryMappedFile bestand dat u niet wilt delen tussen processen.

capacity
Int64

De maximale grootte, in bytes, om toe te wijzen aan het geheugentoewijzingsbestand. Geef 0 op om de capaciteit in te stellen op de grootte van het bestand op schijf.

Retouren

Een geheugentoewijzingsbestand met de opgegeven kenmerken.

Uitzonderingen

path is een lege tekenreeks, bevat alleen witruimte of heeft een of meer ongeldige tekens, zoals gedefinieerd door de GetInvalidFileNameChars() methode.

– of –

path verwijst naar een ongeldig apparaat.

– of –

mapName is een lege tekenreeks.

– of –

mode is Append.

path is null.

capacity groter is dan de grootte van de logische adresruimte.

– of –

capacity is kleiner dan nul.

– of –

capacity is kleiner dan de bestandsgrootte (maar niet nul).

– of –

capacity is nul en de grootte van het bestand op schijf is ook nul.

Er is een I/O-fout opgetreden.

path overschrijdt de maximale lengte die is gedefinieerd door het besturingssysteem.

De aanroeper beschikt niet over de vereiste machtigingen voor het bestand.

Opmerkingen

De mode parameter heeft betrekking op het bronbestand op schijf.

Als capacity het bestand groter is dan de grootte van het bestand op schijf, wordt het bestand op schijf verhoogd zodat het overeenkomt met de opgegeven capaciteit, zelfs als er geen gegevens naar het geheugentoewijzingsbestand worden geschreven. Als u wilt voorkomen dat dit gebeurt, geeft u 0 (nul) op voor de standaardcapaciteit, die intern wordt ingesteld capacity op de grootte van het bestand op schijf.

Van toepassing op

CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven toegangsmodus, naam, capaciteit en toegangstype van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(string path, System.IO.FileMode mode, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
[<System.Security.SecurityCritical>]
static member CreateFromFile : string * System.IO.FileMode * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedFile
static member CreateFromFile : string * System.IO.FileMode * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String, capacity As Long, access As MemoryMappedFileAccess) As MemoryMappedFile

Parameters

path
String

Het pad naar het bestand dat moet worden toegewezen.

mode
FileMode

Toegangsmodus; kan een van de FileMode opsommingswaarden zijn, behalve Append.

mapName
String

Een naam die moet worden toegewezen aan het geheugentoewijzingsbestand of null voor een MemoryMappedFile bestand dat u niet wilt delen tussen processen.

capacity
Int64

De maximale grootte, in bytes, om toe te wijzen aan het geheugentoewijzingsbestand. Geef 0 op om de capaciteit in te stellen op de grootte van het bestand op schijf.

access
MemoryMappedFileAccess

Een van de opsommingswaarden die het type toegang aangeeft dat is toegestaan voor het geheugentoewijzingsbestand.

Retouren

Een geheugentoewijzingsbestand met de opgegeven kenmerken.

Kenmerken

Uitzonderingen

mapName is een lege tekenreeks.

– of –

access is geen toegestane waarde.

– of –

path geeft een leeg bestand.

– of –

access is opgegeven als Read en de capaciteit groter is dan de grootte van het bestand aangegeven door path.

– of –

mode is Append.

path is null.

capacity groter is dan de grootte van de logische adresruimte.

– of –

capacity is kleiner dan nul.

– of –

capacity is kleiner dan de bestandsgrootte (maar niet nul).

– of –

capacity is nul en de grootte van het bestand op schijf is ook nul.

– of –

access is geen gedefinieerde MemoryMappedFileAccess waarde.

– of –

De grootte van het bestand dat wordt path aangegeven, is groter dan capacity.

– of –

Er is een I/O-fout opgetreden.

path overschrijdt de maximale lengte die is gedefinieerd door het besturingssysteem.

De aanroeper beschikt niet over de vereiste machtigingen voor het bestand.

Opmerkingen

De mode parameter heeft betrekking op het bronbestand op schijf.

Als capacity het bestand groter is dan de grootte van het bestand op schijf, wordt het bestand op schijf verhoogd zodat het overeenkomt met de opgegeven capaciteit, zelfs als er geen gegevens naar het geheugentoewijzingsbestand worden geschreven. Als u wilt voorkomen dat dit gebeurt, geeft u 0 (nul) op voor de standaardcapaciteit, die intern wordt ingesteld capacity op de grootte van het bestand op schijf.

Zie ook

Van toepassing op

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)

Hiermee maakt u een geheugentoewijzingsbestand op basis van een bestaand bestand met de opgegeven toegangsmodus, naam, overname en capaciteit.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::IO::FileStream ^ fileStream, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access, System::IO::HandleInheritability inheritability, bool leaveOpen);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(System.IO.FileStream fileStream, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen);
static member CreateFromFile : System.IO.FileStream * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (fileStream As FileStream, mapName As String, capacity As Long, access As MemoryMappedFileAccess, inheritability As HandleInheritability, leaveOpen As Boolean) As MemoryMappedFile

Parameters

fileStream
FileStream

De bestandsstroom van het bestaande bestand.

mapName
String

Een naam die moet worden toegewezen aan het geheugentoewijzingsbestand of null voor een MemoryMappedFile bestand dat u niet wilt delen tussen processen.

capacity
Int64

De maximale grootte, in bytes, om toe te wijzen aan het geheugentoewijzingsbestand. Geef 0 op om de capaciteit in te stellen op de grootte van filestream.

access
MemoryMappedFileAccess

Een van de opsommingswaarden die het type toegang aangeeft dat is toegestaan voor het geheugentoewijzingsbestand.

Deze parameter kan niet worden ingesteld op Write.

inheritability
HandleInheritability

Een van de opsommingswaarden die aangeeft of een ingang naar het geheugentoewijzingsbestand kan worden overgenomen door een onderliggend proces. De standaardwaarde is None.

leaveOpen
Boolean

Een waarde die aangeeft of de bronbestandsstroom moet worden gesloten wanneer de MemoryMappedFile bronbestandsstroom wordt verwijderd.

Retouren

Een geheugentoewijzingsbestand met de opgegeven kenmerken.

Uitzonderingen

mapName is null of een lege tekenreeks.

– of –

capacity en de lengte van het bestand is nul.

– of –

access is ingesteld op Write of Write opsommingswaarde, die niet is toegestaan.

– of –

access is ingesteld op Read en capacity is groter dan de lengte van filestream.

fileStream is null.

capacity is kleiner dan nul.

– of –

capacity is kleiner dan de bestandsgrootte.

– of –

access is geen geldige MemoryMappedFileAccess opsommingswaarde.

– of –

inheritability is geen geldige HandleInheritability opsommingswaarde.

Van toepassing op

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean)

Hiermee maakt u een geheugentoewijzingsbestand met de opgegeven naam, capaciteit, toegangstype, beveiligingsmachtigingen, overname- en verwijderingsvereiste van een bestand op schijf.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::IO::FileStream ^ fileStream, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access, System::IO::MemoryMappedFiles::MemoryMappedFileSecurity ^ memoryMappedFileSecurity, System::IO::HandleInheritability inheritability, bool leaveOpen);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile(System.IO.FileStream fileStream, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileSecurity memoryMappedFileSecurity, System.IO.HandleInheritability inheritability, bool leaveOpen);
[<System.Security.SecurityCritical>]
static member CreateFromFile : System.IO.FileStream * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.MemoryMappedFiles.MemoryMappedFileSecurity * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (fileStream As FileStream, mapName As String, capacity As Long, access As MemoryMappedFileAccess, memoryMappedFileSecurity As MemoryMappedFileSecurity, inheritability As HandleInheritability, leaveOpen As Boolean) As MemoryMappedFile

Parameters

fileStream
FileStream

Het fileStream bestand dat moet worden toegewezen.

mapName
String

Een naam die moet worden toegewezen aan het geheugentoewijzingsbestand of null voor een MemoryMappedFile bestand dat u niet wilt delen tussen processen.

capacity
Int64

De maximale grootte, in bytes, om toe te wijzen aan het geheugentoewijzingsbestand. Geef 0 op om de capaciteit in te stellen op de grootte van het bestand op schijf.

access
MemoryMappedFileAccess

Een van de opsommingswaarden die het type toegang aangeeft dat is toegestaan voor het geheugentoewijzingsbestand.

Deze parameter kan niet worden ingesteld op Write.

memoryMappedFileSecurity
MemoryMappedFileSecurity

De machtigingen die kunnen worden verleend voor bestandstoegang en bewerkingen voor geheugentoewijzingen.

Deze parameter kan zijn null.

inheritability
HandleInheritability

Een van de opsommingswaarden die aangeeft of een ingang naar het geheugentoewijzingsbestand kan worden overgenomen door een onderliggend proces. De standaardwaarde is None.

leaveOpen
Boolean

true niet te verwijderen fileStream nadat de MemoryMappedFile is gesloten; false om te verwijderen fileStream.

Retouren

Een geheugentoewijzingsbestand met de opgegeven kenmerken.

Kenmerken

Uitzonderingen

mapName is een lege tekenreeks.

– of –

capacity en de lengte van het bestand is nul.

– of –

access is ingesteld op de Read waarde of Write opsomming, die niet is toegestaan.

fileStream is null.

capacity is kleiner dan nul.

– of –

capacity is kleiner dan de bestandsgrootte.

– of –

access is geen geldige MemoryMappedFileAccess opsommingswaarde.

– of –

inheritability is geen geldige HandleInheritability opsommingswaarde.

fileStream was gesloten.

access is ingesteld op ReadWrite wanneer fileStreamde toegang is ingesteld op Read of Write.

mapName bestaat al.

Opmerkingen

Als capacity het bestand groter is dan de grootte van het bestand op schijf, wordt het bestand op schijf verhoogd zodat het overeenkomt met de opgegeven capaciteit, zelfs als er geen gegevens naar het geheugentoewijzingsbestand worden geschreven. Als u wilt voorkomen dat dit gebeurt, geeft u 0 (nul) op voor de standaardcapaciteit, die intern wordt ingesteld capacity op de grootte van het bestand op schijf.

Zie ook

Van toepassing op