MemoryMappedFile.CreateFromFile Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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.
- 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.
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ó.
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.