WindowsRuntimeStorageExtensions.CreateSafeFileHandle Método

Definición

Crea y devuelve una referencia a un identificador de archivos seguro para la instancia de IStorage que se extenderá.

Sobrecargas

CreateSafeFileHandle(IStorageFolder, String, FileMode)

Crea un identificador de archivos seguro para un archivo que se encuentra en la instancia actual de la carpeta de almacenamiento.

CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions)

Crea un identificador de archivos seguro para la instancia actual del archivo de almacenamiento.

CreateSafeFileHandle(IStorageFolder, String, FileMode, FileAccess, FileShare, FileOptions)

Crea un identificador de archivos seguro para un archivo que se encuentra en la instancia actual de la carpeta de almacenamiento.

Comentarios

Con la actualización de aniversario de Windows 10, se agregaron nuevas interfaces a IStorageFolder y IStorageFile que permiten crear un identificador de archivo Win32 estándar: IStorageFolderHandleAccess y IStorageItemHandleAccess. El CreateSafeFileHandle grupo de métodos de extensión aprovecha los Create métodos de estas interfaces.

La ventaja clave de la API es el acceso a un agente.SafeFileHandle Esto es fundamental si desea crear un elemento FileStream alrededor de o IStorageItemIStorageFolder cuando se ejecuta en un AppContainer. Cuando se ejecuta en appContainer, la aplicación tiene derechos de acceso a archivos muy limitados. Aspectos como las carpetas de imágenes y documentos requieren que el identificador de archivo nativo se proxie a través RuntimeBroker.exede , ya que el propio proceso de aplicación no tiene derechos para la mayoría de los archivos. Esta API obtiene el identificador proxy. Si accede a carpetas de datos de usuario o mediante un selector de archivos, esta API siempre debe usarse para crear FileStream. El uso de una ruta de acceso a menudo AccessViolationException producirá en estos casos.

CreateSafeFileHandle(IStorageFolder, String, FileMode)

Importante

Esta API no es conforme a CLS.

Crea un identificador de archivos seguro para un archivo que se encuentra en la instancia actual de la carpeta de almacenamiento.

public:
[System::Runtime::CompilerServices::Extension]
 static Microsoft::Win32::SafeHandles::SafeFileHandle ^ CreateSafeFileHandle(Windows::Storage::IStorageFolder ^ rootDirectory, System::String ^ relativePath, System::IO::FileMode mode);
[System.CLSCompliant(false)]
public static Microsoft.Win32.SafeHandles.SafeFileHandle CreateSafeFileHandle (this Windows.Storage.IStorageFolder rootDirectory, string relativePath, System.IO.FileMode mode);
[<System.CLSCompliant(false)>]
static member CreateSafeFileHandle : Windows.Storage.IStorageFolder * string * System.IO.FileMode -> Microsoft.Win32.SafeHandles.SafeFileHandle
<Extension()>
Public Function CreateSafeFileHandle (rootDirectory As IStorageFolder, relativePath As String, mode As FileMode) As SafeFileHandle

Parámetros

rootDirectory
IStorageFolder

Instancia actual de la carpeta de almacenamiento.

relativePath
String

Nombre del archivo para el que se quiere obtener un identificador.

mode
FileMode

Modo en que el sistema operativo necesita abrir el archivo.

Devoluciones

Instancia de identificador de archivos seguro si la operación se realiza correctamente; null si la conversión de rootDirectory en IStorageFolderHandleAccess devuelve null.

Atributos

Excepciones

rootDirectory es null.

O bien

relativePath es null.

Comentarios

Al llamar a este método, si el modo especificado es FileMode.Append, el archivo se abrirá con FileAccess.Read permiso de acceso. Para cualquier otro modo, el archivo se abrirá con FileAccess.ReadWrite permiso de acceso.

Además, este método abrirá el archivo con FileShare.Read acceso de uso compartido de secuencias y con FileOptions.None opciones avanzadas de creación de archivos.

Se aplica a

CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions)

Importante

Esta API no es conforme a CLS.

Crea un identificador de archivos seguro para la instancia actual del archivo de almacenamiento.

[System.CLSCompliant(false)]
public static Microsoft.Win32.SafeHandles.SafeFileHandle CreateSafeFileHandle (this Windows.Storage.IStorageFile windowsRuntimeFile, System.IO.FileAccess access = System.IO.FileAccess.ReadWrite, System.IO.FileShare share = System.IO.FileShare.Read, System.IO.FileOptions options = System.IO.FileOptions.None);
[<System.CLSCompliant(false)>]
static member CreateSafeFileHandle : Windows.Storage.IStorageFile * System.IO.FileAccess * System.IO.FileShare * System.IO.FileOptions -> Microsoft.Win32.SafeHandles.SafeFileHandle
<Extension()>
Public Function CreateSafeFileHandle (windowsRuntimeFile As IStorageFile, Optional access As FileAccess = System.IO.FileAccess.ReadWrite, Optional share As FileShare = System.IO.FileShare.Read, Optional options As FileOptions = System.IO.FileOptions.None) As SafeFileHandle

Parámetros

windowsRuntimeFile
IStorageFile

Instancia de archivo de almacenamiento.

access
FileAccess

Tipo de acceso que es necesario usar al abrir el archivo. El valor predeterminado es ReadWrite.

share
FileShare

Tipo de acceso de uso compartido de secuencia que otros objetos FileStream pueden tener en el mismo archivo. El valor predeterminado es Read.

options
FileOptions

Opciones avanzadas para la creación del objeto FileStream. El valor predeterminado es None.

Devoluciones

Instancia de identificador de archivos seguro si la operación se realiza correctamente; null si la conversión de windowsRuntimeFile en IStorageItemHandleAccess devuelve null.

Atributos

Excepciones

windowsRuntimeFile es null.

Se aplica a

CreateSafeFileHandle(IStorageFolder, String, FileMode, FileAccess, FileShare, FileOptions)

Importante

Esta API no es conforme a CLS.

Crea un identificador de archivos seguro para un archivo que se encuentra en la instancia actual de la carpeta de almacenamiento.

[System.CLSCompliant(false)]
public static Microsoft.Win32.SafeHandles.SafeFileHandle CreateSafeFileHandle (this Windows.Storage.IStorageFolder rootDirectory, string relativePath, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share = System.IO.FileShare.Read, System.IO.FileOptions options = System.IO.FileOptions.None);
[<System.CLSCompliant(false)>]
static member CreateSafeFileHandle : Windows.Storage.IStorageFolder * string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * System.IO.FileOptions -> Microsoft.Win32.SafeHandles.SafeFileHandle
<Extension()>
Public Function CreateSafeFileHandle (rootDirectory As IStorageFolder, relativePath As String, mode As FileMode, access As FileAccess, Optional share As FileShare = System.IO.FileShare.Read, Optional options As FileOptions = System.IO.FileOptions.None) As SafeFileHandle

Parámetros

rootDirectory
IStorageFolder

Instancia actual de la carpeta de almacenamiento.

relativePath
String

Nombre del archivo para el que se quiere obtener un identificador.

mode
FileMode

Modo en que el sistema operativo necesita abrir el archivo.

access
FileAccess

Tipo de acceso que es necesario usar al abrir el archivo.

share
FileShare

Tipo de acceso de uso compartido de secuencia que otros objetos FileStream pueden tener en el mismo archivo. El valor predeterminado es Read.

options
FileOptions

Opciones avanzadas para la creación del objeto FileStream. El valor predeterminado es None.

Devoluciones

Instancia de identificador de archivos seguro si la operación se realiza correctamente; null si la conversión de rootDirectory en IStorageFolderHandleAccess devuelve null.

Atributos

Excepciones

rootDirectory es null.

O bien

relativePath es null.

Se aplica a