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 如果要在 IStorageItemAppContainer 中运行时围绕 或 IStorageFolder 创建 FileStream ,这一点至关重要。 在 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 该文件。

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

适用于

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

适用于