WindowsRuntimeStorageExtensions.CreateSafeFileHandle 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 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.exe
de , 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
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
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de