WindowsRuntimeStorageExtensions.CreateSafeFileHandle メソッド

定義

拡張される IStorage インスタンスのセーフ ファイル ハンドルへの参照を作成して返します。

オーバーロード

CreateSafeFileHandle(IStorageFolder, String, FileMode)

現在のストレージ フォルダー インスタンス内にあるファイルのセーフ ファイル ハンドルを作成します。

CreateSafeFileHandle(IStorageFile, FileAccess, FileShare, FileOptions)

現在のストレージ ファイル インスタンスのセーフ ファイル ハンドルを作成します。

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

現在のストレージ フォルダー インスタンス内にあるファイルのセーフ ファイル ハンドルを作成します。

注釈

Windows 10 Anniversary Update では、 と に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です。

適用対象