WindowsRuntimeStorageExtensions.CreateSafeFileHandle 方法

定义

创建并返回对正在扩展的 IStorage 实例的安全文件句柄的引用。

重载

CreateSafeFileHandle(IStorageFolder, String, FileMode)

为当前存储文件夹实例中的文件创建安全文件句柄。

CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions)

为当前存储文件实例创建安全文件句柄。

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

为当前存储文件夹实例中的文件创建安全文件句柄。

注解

随着 Windows 10 周年更新,向 添加了IStorageFolderIStorageFile新的接口,这些接口允许创建标准 Win32 文件句柄: IStorageFolderHandleAccessIStorageItemHandleAccess。 扩展 CreateSafeFileHandle 方法组利用这些 Create 接口的方法。

API 的主要优点是访问中转 。SafeFileHandle 如果要在 周围IStorageItem创建 ,FileStream或者在 IStorageFolderAppContainer 中运行时,这一点至关重要。 在 AppContainer 中运行时,应用程序的文件访问权限非常有限。 图片和文档文件夹等内容需要通过 RuntimeBroker.exe代理本机文件句柄,因为应用程序进程本身无权访问大多数文件。 此 API 获取代理句柄。 如果访问用户数据文件夹或使用文件选取器,应始终使用此 API 来创建 FileStream。 在这些情况下,使用路径通常会引发 AccessViolationException

CreateSafeFileHandle(IStorageFolder, String, FileMode)

重要

此 API 不符合 CLS。

为当前存储文件夹实例中的文件创建安全文件句柄。

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

参数

rootDirectory
IStorageFolder

当前存储文件夹实例。

relativePath
String

要添加句柄的文件名称。

mode
FileMode

操作系统应在其中打开该文件的模式。

返回

如果操作成功,则为安全文件句柄实例;如果从 rootDirectory 到 IStorageFolderHandleAccess 的转换返回 null,则为 null

属性

例外

rootDirectorynull

relativePathnull

注解

调用此方法时,如果指定的模式为 FileMode.Append,则将使用 FileAccess.Read 访问权限打开文件。 对于任何其他模式,将使用访问权限打开 FileAccess.ReadWrite 文件。

此外,此方法将打开具有 FileShare.Read 流共享访问权限和 FileOptions.None 高级文件创建选项的文件。

适用于

CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions)

重要

此 API 不符合 CLS。

为当前存储文件实例创建安全文件句柄。

[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

参数

windowsRuntimeFile
IStorageFile

存储文件实例。

access
FileAccess

打开文件时应使用的访问类型。 默认值是 ReadWrite

share
FileShare

对于同一文件,其他 FileStream 对象可以具有的流共享访问类型。 默认值是 Read

options
FileOptions

用于创建 FileStream 对象的高级选项。 默认值是 None

返回

如果操作成功,则为安全文件句柄实例;如果从 windowsRuntimeFile 到 IStorageItemHandleAccess 的转换返回 null,则为 null

属性

例外

windowsRuntimeFilenull

适用于

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

重要

此 API 不符合 CLS。

为当前存储文件夹实例中的文件创建安全文件句柄。

[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

参数

rootDirectory
IStorageFolder

当前存储文件夹实例。

relativePath
String

要添加句柄的文件名称。

mode
FileMode

操作系统应在其中打开该文件的模式。

access
FileAccess

打开文件时应使用的访问类型。

share
FileShare

对于同一文件,其他 FileStream 对象可以具有的流共享访问类型。 默认值是 Read

options
FileOptions

用于创建 FileStream 对象的高级选项。 默认值是 None

返回

如果操作成功,则为安全文件句柄实例;如果从 rootDirectory 到 IStorageFolderHandleAccess 的转换返回 null,则为 null

属性

例外

rootDirectorynull

relativePathnull

适用于