MemoryMappedFile.CreateFromFile Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un fichier mappé en mémoire à partir d’un fichier existant.
Surcharges
| Nom | Description |
|---|---|
| CreateFromFile(String) |
Crée un fichier mappé en mémoire à partir d’un fichier sur le disque. |
| CreateFromFile(String, FileMode) |
Crée un fichier mappé en mémoire qui a le mode d’accès spécifié à partir d’un fichier sur le disque. |
| CreateFromFile(String, FileMode, String) |
Crée un fichier mappé en mémoire qui a le mode d’accès et le nom spécifiés à partir d’un fichier sur le disque. |
| CreateFromFile(String, FileMode, String, Int64) |
Crée un fichier mappé en mémoire qui a le mode d’accès, le nom et la capacité spécifiés à partir d’un fichier sur le disque. |
| CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) |
Crée un fichier mappé en mémoire qui a le mode d’accès, le nom, la capacité et le type d’accès spécifiés à partir d’un fichier sur le disque. |
| CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) |
Crée un fichier mappé en mémoire à partir d’un fichier existant avec le mode d’accès, le nom, l’héritage et la capacité spécifiés. |
| CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) |
Crée un fichier mappé en mémoire qui a le nom, la capacité, le type d’accès, les autorisations de sécurité, l’héritage et l’exigence de suppression d’un fichier sur disque. |
CreateFromFile(String)
Crée un fichier mappé en mémoire à partir d’un fichier sur le disque.
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
Paramètres
- path
- String
Chemin d’accès au fichier à mapper.
Retours
Fichier mappé en mémoire.
Exceptions
path est une chaîne vide, contient uniquement de l’espace blanc ou possède un ou plusieurs caractères non valides, comme défini par la GetInvalidFileNameChars() méthode.
-ou-
path fait référence à un appareil non valide.
path a la valeur null.
Une erreur d’E/S s’est produite.
path dépasse la longueur maximale définie par le système d’exploitation.
L’appelant n’a pas les autorisations requises pour le fichier.
Exemples
L’exemple suivant utilise la CreateFromFile méthode pour créer un fichier mappé en mémoire, puis crée une vue mappée en mémoire à une partie d’un fichier extrêmement volumineux.
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
Voir aussi
S’applique à
CreateFromFile(String, FileMode)
Crée un fichier mappé en mémoire qui a le mode d’accès spécifié à partir d’un fichier sur le disque.
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
Paramètres
- path
- String
Chemin d’accès au fichier à mapper.
Retours
Fichier mappé en mémoire qui a le mode d’accès spécifié.
Exceptions
path est une chaîne vide, contient uniquement de l’espace blanc ou possède un ou plusieurs caractères non valides, comme défini par la GetInvalidFileNameChars() méthode.
-ou-
path fait référence à un appareil non valide.
-ou-
mode a la valeur Append.
path a la valeur null.
mode est Create, CreateNewou Truncate.
-ou-
mode est OpenOrCreate et le fichier sur le disque n’existe pas.
-ou-
Une erreur d’E/S s’est produite.
path dépasse la longueur maximale définie par le système d’exploitation.
L’appelant n’a pas les autorisations requises pour le fichier.
Remarques
Le mode paramètre se rapporte au fichier source sur le disque. Vous ne pouvez utiliser que la Open valeur d’énumération pour créer le fichier mappé en mémoire à partir du fichier source sur le disque.
Voir aussi
S’applique à
CreateFromFile(String, FileMode, String)
Crée un fichier mappé en mémoire qui a le mode d’accès et le nom spécifiés à partir d’un fichier sur le disque.
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
Paramètres
- path
- String
Chemin d’accès au fichier à mapper.
- mapName
- String
Nom à affecter au fichier mappé en mémoire ou null pour un MemoryMappedFile partage que vous n’avez pas l’intention de partager entre les processus.
Retours
Fichier mappé en mémoire qui a le nom et le mode d’accès spécifiés.
Exceptions
path est une chaîne vide, contient uniquement de l’espace blanc ou possède un ou plusieurs caractères non valides, comme défini par la GetInvalidFileNameChars() méthode.
-ou-
path fait référence à un appareil non valide.
-ou-
mapName est une chaîne vide.
-ou-
mode a la valeur Append.
path a la valeur null.
mode est Create, CreateNewou Truncate.
-ou-
mode est OpenOrCreate et le fichier sur le disque n’existe pas.
-ou-
Une erreur d’E/S s’est produite.
path dépasse la longueur maximale définie par le système d’exploitation.
L’appelant n’a pas les autorisations requises pour le fichier.
Remarques
Le mode paramètre se rapporte au fichier source sur le disque. Vous ne pouvez utiliser que la Open valeur d’énumération pour créer le fichier mappé en mémoire à partir du fichier source sur le disque.
S’applique à
CreateFromFile(String, FileMode, String, Int64)
Crée un fichier mappé en mémoire qui a le mode d’accès, le nom et la capacité spécifiés à partir d’un fichier sur le disque.
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
Paramètres
- path
- String
Chemin d’accès au fichier à mapper.
- mode
- FileMode
Mode d’accès ; peut être l’une des valeurs d’énumération à l’exception FileModeAppendde .
- mapName
- String
Nom à affecter au fichier mappé en mémoire ou null pour un MemoryMappedFile partage que vous n’avez pas l’intention de partager entre les processus.
- capacity
- Int64
Taille maximale, en octets, à allouer au fichier mappé en mémoire. Spécifiez 0 pour définir la capacité sur la taille du fichier sur le disque.
Retours
Fichier mappé en mémoire qui a les caractéristiques spécifiées.
Exceptions
path est une chaîne vide, contient uniquement de l’espace blanc ou possède un ou plusieurs caractères non valides, comme défini par la GetInvalidFileNameChars() méthode.
-ou-
path fait référence à un appareil non valide.
-ou-
mapName est une chaîne vide.
-ou-
mode a la valeur Append.
path a la valeur null.
capacity est supérieur à la taille de l’espace d’adressage logique.
-ou-
capacity est inférieur à zéro.
-ou-
capacity est inférieur à la taille du fichier (mais pas zéro).
-ou-
capacity est égal à zéro, et la taille du fichier sur le disque est également égale à zéro.
Une erreur d’E/S s’est produite.
path dépasse la longueur maximale définie par le système d’exploitation.
L’appelant n’a pas les autorisations requises pour le fichier.
Remarques
Le mode paramètre se rapporte au fichier source sur le disque.
S’il capacity est supérieur à la taille du fichier sur le disque, le fichier sur disque est augmenté pour correspondre à la capacité spécifiée, même si aucune donnée n’est écrite dans le fichier mappé en mémoire. Pour éviter ce problème, spécifiez 0 (zéro) pour la capacité par défaut, qui sera définie capacity en interne sur la taille du fichier sur le disque.
S’applique à
CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess)
Crée un fichier mappé en mémoire qui a le mode d’accès, le nom, la capacité et le type d’accès spécifiés à partir d’un fichier sur le disque.
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
Paramètres
- path
- String
Chemin d’accès au fichier à mapper.
- mode
- FileMode
Mode d’accès ; peut être l’une des valeurs d’énumération à l’exception FileModeAppendde .
- mapName
- String
Nom à affecter au fichier mappé en mémoire ou null pour un MemoryMappedFile partage que vous n’avez pas l’intention de partager entre les processus.
- capacity
- Int64
Taille maximale, en octets, à allouer au fichier mappé en mémoire. Spécifiez 0 pour définir la capacité sur la taille du fichier sur le disque.
- access
- MemoryMappedFileAccess
Une des valeurs d’énumération qui spécifie le type d’accès autorisé au fichier mappé en mémoire.
Retours
Fichier mappé en mémoire qui a les caractéristiques spécifiées.
- Attributs
Exceptions
mapName est une chaîne vide.
-ou-
access n’est pas une valeur autorisée.
-ou-
path spécifie un fichier vide.
-ou-
access est spécifié comme Read et la capacité est supérieure à la taille du fichier indiqué par path.
-ou-
mode a la valeur Append.
path a la valeur null.
capacity est supérieur à la taille de l’espace d’adressage logique.
-ou-
capacity est inférieur à zéro.
-ou-
capacity est inférieur à la taille du fichier (mais pas zéro).
-ou-
capacity est égal à zéro, et la taille du fichier sur le disque est également égale à zéro.
-ou-
access n’est pas une valeur définie MemoryMappedFileAccess .
-ou-
La taille du fichier indiqué par path est supérieure à capacity.
path dépasse la longueur maximale définie par le système d’exploitation.
L’appelant n’a pas les autorisations requises pour le fichier.
Remarques
Le mode paramètre se rapporte au fichier source sur le disque.
S’il capacity est supérieur à la taille du fichier sur le disque, le fichier sur disque est augmenté pour correspondre à la capacité spécifiée, même si aucune donnée n’est écrite dans le fichier mappé en mémoire. Pour éviter ce problème, spécifiez 0 (zéro) pour la capacité par défaut, qui sera définie capacity en interne sur la taille du fichier sur le disque.
Voir aussi
S’applique à
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)
Crée un fichier mappé en mémoire à partir d’un fichier existant avec le mode d’accès, le nom, l’héritage et la capacité spécifiés.
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
Paramètres
- fileStream
- FileStream
Flux de fichiers du fichier existant.
- mapName
- String
Nom à affecter au fichier mappé en mémoire ou null pour un MemoryMappedFile partage que vous n’avez pas l’intention de partager entre les processus.
- capacity
- Int64
Taille maximale, en octets, à allouer au fichier mappé en mémoire. Spécifiez 0 pour définir la capacité sur la taille de filestream.
- access
- MemoryMappedFileAccess
Une des valeurs d’énumération qui spécifie le type d’accès autorisé au fichier mappé en mémoire.
Ce paramètre ne peut pas être défini sur Write.
- inheritability
- HandleInheritability
Une des valeurs d’énumération qui spécifie si un handle vers le fichier mappé en mémoire peut être hérité par un processus enfant. La valeur par défaut est None.
- leaveOpen
- Boolean
Valeur qui indique s’il faut fermer le flux de fichiers source lorsque celui-ci MemoryMappedFile est supprimé.
Retours
Fichier mappé en mémoire qui a les caractéristiques spécifiées.
Exceptions
mapName est null ou une chaîne vide.
-ou-
capacity et la longueur du fichier sont égales à zéro.
-ou-
access est défini sur Write ou Write valeur d’énumération, qui n’est pas autorisée.
-ou-
access est défini sur Read et capacity est supérieur à la longueur de filestream.
fileStream a la valeur null.
capacity est inférieur à zéro.
-ou-
capacity est inférieur à la taille du fichier.
-ou-
access n’est pas une valeur d’énumération valide MemoryMappedFileAccess .
-ou-
inheritability n’est pas une valeur d’énumération valide HandleInheritability .
S’applique à
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean)
Crée un fichier mappé en mémoire qui a le nom, la capacité, le type d’accès, les autorisations de sécurité, l’héritage et l’exigence de suppression d’un fichier sur disque.
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
Paramètres
- fileStream
- FileStream
Vers fileStream le fichier à mapper.
- mapName
- String
Nom à affecter au fichier mappé en mémoire ou null pour un MemoryMappedFile partage que vous n’avez pas l’intention de partager entre les processus.
- capacity
- Int64
Taille maximale, en octets, à allouer au fichier mappé en mémoire. Spécifiez 0 pour définir la capacité sur la taille du fichier sur le disque.
- access
- MemoryMappedFileAccess
Une des valeurs d’énumération qui spécifie le type d’accès autorisé au fichier mappé en mémoire.
Ce paramètre ne peut pas être défini sur Write.
- memoryMappedFileSecurity
- MemoryMappedFileSecurity
Autorisations qui peuvent être accordées pour l’accès aux fichiers et les opérations sur les fichiers mappés en mémoire.
Ce paramètre peut être null.
- inheritability
- HandleInheritability
Une des valeurs d’énumération qui spécifie si un handle vers le fichier mappé en mémoire peut être hérité par un processus enfant. La valeur par défaut est None.
- leaveOpen
- Boolean
true pour ne pas supprimer fileStream après la fermeture de l’objet MemoryMappedFile ; false pour supprimer fileStream.
Retours
Fichier mappé en mémoire qui a les caractéristiques spécifiées.
- Attributs
Exceptions
mapName est une chaîne vide.
-ou-
capacity et la longueur du fichier sont égales à zéro.
-ou-
accessest défini sur la valeur ou Write l’énumérationRead, qui n’est pas autorisée.
fileStream a la valeur null.
capacity est inférieur à zéro.
-ou-
capacity est inférieur à la taille du fichier.
-ou-
access n’est pas une valeur d’énumération valide MemoryMappedFileAccess .
-ou-
inheritability n’est pas une valeur d’énumération valide HandleInheritability .
fileStream a été fermé.
mapName existe déjà.
Remarques
S’il capacity est supérieur à la taille du fichier sur le disque, le fichier sur disque est augmenté pour correspondre à la capacité spécifiée, même si aucune donnée n’est écrite dans le fichier mappé en mémoire. Pour éviter ce problème, spécifiez 0 (zéro) pour la capacité par défaut, qui sera définie capacity en interne sur la taille du fichier sur le disque.