WindowsRuntimeStorageExtensions.CreateSafeFileHandle 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建并返回对正在扩展的 IStorage 实例的安全文件句柄的引用。
重载
CreateSafeFileHandle(IStorageFolder, String, FileMode) |
为当前存储文件夹实例中的文件创建安全文件句柄。 |
CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions) |
为当前存储文件实例创建安全文件句柄。 |
CreateSafeFileHandle(IStorageFolder, String, FileMode, FileAccess, FileShare, FileOptions) |
为当前存储文件夹实例中的文件创建安全文件句柄。 |
注解
随着Windows 10周年更新,新接口已添加到 IStorageFolder ,IStorageFile允许创建标准 Win32 文件句柄: IStorageFolderHandleAccess
和 IStorageItemHandleAccess
。 扩展 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
。
- 属性
例外
注解
调用此方法时,如果指定的模式为 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
。
- 属性
例外
windowsRuntimeFile
为 null
。
适用于
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
。
- 属性
例外
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈