MemoryMappedFile.CreateFromFile Método

Definición

Crea un archivo asignado a memoria a partir de un archivo existente.

Sobrecargas

Nombre Description
CreateFromFile(String)

Crea un archivo asignado a memoria a partir de un archivo en el disco.

CreateFromFile(String, FileMode)

Crea un archivo asignado a memoria que tiene el modo de acceso especificado desde un archivo en el disco.

CreateFromFile(String, FileMode, String)

Crea un archivo asignado a memoria que tiene el modo de acceso y el nombre especificados a partir de un archivo en el disco.

CreateFromFile(String, FileMode, String, Int64)

Crea un archivo asignado a memoria que tiene el modo de acceso, el nombre y la capacidad especificados a partir de un archivo en el disco.

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

Crea un archivo asignado a memoria que tiene el modo de acceso, el nombre, la capacidad y el tipo de acceso especificados desde un archivo en el disco.

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

Crea un archivo asignado a memoria a partir de un archivo existente con el modo de acceso, el nombre, la heredar y la capacidad especificados.

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

Crea un archivo asignado a memoria que tiene el nombre, la capacidad, el tipo de acceso, los permisos de seguridad, la herencia y el requisito de eliminación especificados de un archivo en el disco.

CreateFromFile(String)

Crea un archivo asignado a memoria a partir de un archivo en el disco.

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

Parámetros

path
String

Ruta de acceso al archivo que se va a asignar.

Devoluciones

Un archivo asignado a memoria.

Excepciones

path es una cadena vacía, solo contiene espacios en blanco o tiene uno o varios caracteres no válidos, tal como se define en el GetInvalidFileNameChars() método .

O bien

path hace referencia a un dispositivo no válido.

path es null.

Error de E/S.

path supera la longitud máxima definida por el sistema operativo.

El autor de la llamada no tiene los permisos necesarios para el archivo.

Ejemplos

En el ejemplo siguiente se usa el CreateFromFile método para crear un archivo asignado a memoria y, a continuación, se crea una vista asignada a memoria en una parte de un archivo extremadamente grande.

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

Consulte también

Se aplica a

CreateFromFile(String, FileMode)

Crea un archivo asignado a memoria que tiene el modo de acceso especificado desde un archivo en el disco.

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

Parámetros

path
String

Ruta de acceso al archivo que se va a asignar.

mode
FileMode

Modo de acceso; debe ser Open.

Devoluciones

Un archivo asignado a memoria que tiene el modo de acceso especificado.

Excepciones

path es una cadena vacía, solo contiene espacios en blanco o tiene uno o varios caracteres no válidos, tal como se define en el GetInvalidFileNameChars() método .

O bien

path hace referencia a un dispositivo no válido.

O bien

mode es Append.

path es null.

mode es Create, CreateNewo Truncate.

O bien

mode es OpenOrCreate y el archivo en el disco no existe.

O bien

Error de E/S.

path supera la longitud máxima definida por el sistema operativo.

El autor de la llamada no tiene los permisos necesarios para el archivo.

Comentarios

El mode parámetro pertenece al archivo de origen en el disco. Solo puede usar el Open valor de enumeración para crear el archivo asignado a la memoria desde el archivo de origen en el disco.

Consulte también

Se aplica a

CreateFromFile(String, FileMode, String)

Crea un archivo asignado a memoria que tiene el modo de acceso y el nombre especificados a partir de un archivo en el disco.

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

Parámetros

path
String

Ruta de acceso al archivo que se va a asignar.

mode
FileMode

Modo de acceso; debe ser Open.

mapName
String

Nombre que se va a asignar al archivo asignado a la memoria o null para un MemoryMappedFile que no pretende compartir entre procesos.

Devoluciones

Un archivo asignado a memoria que tiene el nombre y el modo de acceso especificados.

Excepciones

path es una cadena vacía, solo contiene espacios en blanco o tiene uno o varios caracteres no válidos, tal como se define en el GetInvalidFileNameChars() método .

O bien

path hace referencia a un dispositivo no válido.

O bien

mapName es una cadena vacía.

O bien

mode es Append.

path es null.

mode es Create, CreateNewo Truncate.

O bien

mode es OpenOrCreate y el archivo en el disco no existe.

O bien

Error de E/S.

path supera la longitud máxima definida por el sistema operativo.

El autor de la llamada no tiene los permisos necesarios para el archivo.

Comentarios

El mode parámetro pertenece al archivo de origen en el disco. Solo puede usar el Open valor de enumeración para crear el archivo asignado a la memoria desde el archivo de origen en el disco.

Se aplica a

CreateFromFile(String, FileMode, String, Int64)

Crea un archivo asignado a memoria que tiene el modo de acceso, el nombre y la capacidad especificados a partir de un archivo en el disco.

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

Parámetros

path
String

Ruta de acceso al archivo que se va a asignar.

mode
FileMode

Modo de acceso; puede ser cualquiera de los FileMode valores de enumeración excepto Append.

mapName
String

Nombre que se va a asignar al archivo asignado a la memoria o null para un MemoryMappedFile que no pretende compartir entre procesos.

capacity
Int64

Tamaño máximo, en bytes, que se va a asignar al archivo asignado a memoria. Especifique 0 para establecer la capacidad en el tamaño del archivo en el disco.

Devoluciones

Un archivo asignado a memoria que tiene las características especificadas.

Excepciones

path es una cadena vacía, solo contiene espacios en blanco o tiene uno o varios caracteres no válidos, tal como se define en el GetInvalidFileNameChars() método .

O bien

path hace referencia a un dispositivo no válido.

O bien

mapName es una cadena vacía.

O bien

mode es Append.

path es null.

capacity es mayor que el tamaño del espacio de direcciones lógico.

O bien

capacity es menor que cero.

O bien

capacity es menor que el tamaño del archivo (pero no cero).

O bien

capacity es cero y el tamaño del archivo en el disco también es cero.

Error de E/S.

path supera la longitud máxima definida por el sistema operativo.

El autor de la llamada no tiene los permisos necesarios para el archivo.

Comentarios

El mode parámetro pertenece al archivo de origen en el disco.

Si capacity es mayor que el tamaño del archivo en el disco, el archivo del disco aumenta para que coincida con la capacidad especificada aunque no se escriban datos en el archivo asignado a memoria. Para evitar que esto ocurra, especifique 0 (cero) para la capacidad predeterminada, que se establecerá capacity internamente en el tamaño del archivo en el disco.

Se aplica a

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

Crea un archivo asignado a memoria que tiene el modo de acceso, el nombre, la capacidad y el tipo de acceso especificados desde un archivo en el disco.

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

Parámetros

path
String

Ruta de acceso al archivo que se va a asignar.

mode
FileMode

Modo de acceso; puede ser cualquiera de los FileMode valores de enumeración excepto Append.

mapName
String

Nombre que se va a asignar al archivo asignado a la memoria o null para un MemoryMappedFile que no pretende compartir entre procesos.

capacity
Int64

Tamaño máximo, en bytes, que se va a asignar al archivo asignado a memoria. Especifique 0 para establecer la capacidad en el tamaño del archivo en el disco.

access
MemoryMappedFileAccess

Uno de los valores de enumeración que especifica el tipo de acceso permitido al archivo asignado a memoria.

Devoluciones

Un archivo asignado a memoria que tiene las características especificadas.

Atributos

Excepciones

mapName es una cadena vacía.

O bien

access no es un valor permitido.

O bien

path especifica un archivo vacío.

O bien

access se especifica como Read y la capacidad es mayor que el tamaño del archivo indicado por path.

O bien

mode es Append.

path es null.

capacity es mayor que el tamaño del espacio de direcciones lógico.

O bien

capacity es menor que cero.

O bien

capacity es menor que el tamaño del archivo (pero no cero).

O bien

capacity es cero y el tamaño del archivo en el disco también es cero.

O bien

access no es un valor definido MemoryMappedFileAccess .

O bien

El tamaño del archivo indicado por path es mayor que capacity.

O bien

Error de E/S.

path supera la longitud máxima definida por el sistema operativo.

El autor de la llamada no tiene los permisos necesarios para el archivo.

Comentarios

El mode parámetro pertenece al archivo de origen en el disco.

Si capacity es mayor que el tamaño del archivo en el disco, el archivo del disco aumenta para que coincida con la capacidad especificada aunque no se escriban datos en el archivo asignado a memoria. Para evitar que esto ocurra, especifique 0 (cero) para la capacidad predeterminada, que se establecerá capacity internamente en el tamaño del archivo en el disco.

Consulte también

Se aplica a

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

Crea un archivo asignado a memoria a partir de un archivo existente con el modo de acceso, el nombre, la heredar y la capacidad especificados.

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

Parámetros

fileStream
FileStream

Secuencia de archivos del archivo existente.

mapName
String

Nombre que se va a asignar al archivo asignado a la memoria o null para un MemoryMappedFile que no pretende compartir entre procesos.

capacity
Int64

Tamaño máximo, en bytes, que se va a asignar al archivo asignado a memoria. Especifique 0 para establecer la capacidad en el tamaño de filestream.

access
MemoryMappedFileAccess

Uno de los valores de enumeración que especifica el tipo de acceso permitido al archivo asignado a memoria.

Este parámetro no se puede establecer en Write.

inheritability
HandleInheritability

Uno de los valores de enumeración que especifica si un identificador del archivo asignado a memoria puede heredarlo un proceso secundario. El valor predeterminado es None.

leaveOpen
Boolean

Valor que indica si se va a cerrar la secuencia de archivos de origen cuando MemoryMappedFile se elimina .

Devoluciones

Un archivo asignado a memoria que tiene las características especificadas.

Excepciones

mapName es null o una cadena vacía.

O bien

capacity y la longitud del archivo son cero.

O bien

access se establece en Write o Write en el valor de enumeración, que no se permite.

O bien

access se establece en Read y capacity es mayor que la longitud de filestream.

fileStream es null.

capacity es menor que cero.

O bien

capacity es menor que el tamaño del archivo.

O bien

access no es un valor de enumeración válido MemoryMappedFileAccess .

O bien

inheritability no es un valor de enumeración válido HandleInheritability .

Se aplica a

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

Crea un archivo asignado a memoria que tiene el nombre, la capacidad, el tipo de acceso, los permisos de seguridad, la herencia y el requisito de eliminación especificados de un archivo en el disco.

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

Parámetros

fileStream
FileStream

al fileStream archivo que se va a asignar.

mapName
String

Nombre que se va a asignar al archivo asignado a la memoria o null para un MemoryMappedFile que no pretende compartir entre procesos.

capacity
Int64

Tamaño máximo, en bytes, que se va a asignar al archivo asignado a memoria. Especifique 0 para establecer la capacidad en el tamaño del archivo en el disco.

access
MemoryMappedFileAccess

Uno de los valores de enumeración que especifica el tipo de acceso permitido al archivo asignado a memoria.

Este parámetro no se puede establecer en Write.

memoryMappedFileSecurity
MemoryMappedFileSecurity

Los permisos que se pueden conceder para el acceso a archivos y las operaciones en archivos asignados a memoria.

Este parámetro puede ser null.

inheritability
HandleInheritability

Uno de los valores de enumeración que especifica si un identificador del archivo asignado a memoria puede heredarlo un proceso secundario. El valor predeterminado es None.

leaveOpen
Boolean

true para no eliminar fileStream después de MemoryMappedFile cerrar ; false para eliminar fileStream.

Devoluciones

Un archivo asignado a memoria que tiene las características especificadas.

Atributos

Excepciones

mapName es una cadena vacía.

O bien

capacity y la longitud del archivo son cero.

O bien

access se establece en el Read valor de enumeración o Write , que no se permite.

fileStream es null.

capacity es menor que cero.

O bien

capacity es menor que el tamaño del archivo.

O bien

access no es un valor de enumeración válido MemoryMappedFileAccess .

O bien

inheritability no es un valor de enumeración válido HandleInheritability .

fileStream se cerró.

access se establece en ReadWrite cuando fileStreamel acceso de está establecido Read en o Write.

mapName ya existe.

Comentarios

Si capacity es mayor que el tamaño del archivo en el disco, el archivo del disco aumenta para que coincida con la capacidad especificada aunque no se escriban datos en el archivo asignado a memoria. Para evitar que esto ocurra, especifique 0 (cero) para la capacidad predeterminada, que se establecerá capacity internamente en el tamaño del archivo en el disco.

Consulte también

Se aplica a