Windows App SDKは、パッケージ アプリの強力なファイル管理機能を提供します。 Windows.Storage、Windows.Storage.Streams、および Microsoft.Windows.Storage.Pickers 名前空間を使用して、ファイル内のさまざまなデータ形式を効率的に読み書きしたり、ファイルとフォルダーを管理したりできます。
Windows 10以降、Windows デスクトップ アプリのファイル、フォルダー、ライブラリ、設定に関連するさまざまな API があります。 これらの機能は、
Windows App SDK ピッカーを使用してデータの読み取りと書き込みを行う
Windows App SDK バージョン 1.8 以降では、ピッカー API を使用できます。 次のトピックでは、ピッカー API を使用して、ユーザーがアプリ内のファイルとフォルダーを開いて保存できるようにする方法について説明します。
| トピック | Description |
|---|---|
| WinUI でピッカーを使用してファイルとフォルダーを開く | Windows App SDKファイルとフォルダーピッカーを使用して、ユーザーが WinUI アプリ内のファイルまたはフォルダーを参照して選択できるようにします。 ピッカー API は、ユーザーがデバイスとクラウドのstorageの場所を移動するのに役立つ使い慣れた Windows エクスペリエンスを提供します。 ユーザーが FileOpenPicker クラスと FolderPicker クラスを使用して開くファイルまたはフォルダーを選択できるようにする方法について説明します。 |
| WinUI アプリやその他の Windows クライアント アプリをビルドする場合、ユーザーは多くの場合、ドキュメント、画像、その他のコンテンツなどのファイルをデバイス上の特定の場所に保存する必要があります。 Windows App SDKは、FileSavePicker クラスを提供し、ユーザーがファイルを保存する場所とその名前を選択できる、一貫性のあるわかりやすいインターフェイスを作成します。 |
WinRT ピッカーと Windows App SDK ピッカーの主な違い
WinRT Windows.Storage.Pickers の UWP アプリで使用されるものとの主な相違点を次に示します。
- 既存の Windows.Storage.Pickers API が StorageFile および StorageFolder オブジェクトを返すのに対し、この新しい API は、PickFileResult および PickFolderResult クラスを介して文字列ベースのパスを返します。 これにより、API が簡略化され、昇格されたシナリオでのstorage機能の複雑さを回避できます。
- 同様に、FileSavePicker.SuggestedSaveFile プロパティ (StorageFile が返されました) が置き換えられました。 その機能は、SuggestedFolder と SuggestedFileName の 2 つの文字列プロパティでカバーされるようになりました。 これにより、保存ダイアログのフォルダーとファイル名を提案できます。
- すべての新しいピッカーはデスクトップ アプリ専用に設計されており、 WindowId プロパティを使用してピッカーをホスト ウィンドウにリンクし、
WinRT.Interop.InitializeWithWindow.Initializeパターンを置き換えます。 - 新しいピッカーを使用すると、開発者は FileTypeFilter または FileTypeChoices を指定する必要なく使用できます。 これらのプロパティが設定されていない場合、UWP ピッカーは例外をスローしますが、開発者がこれらのプロパティを明示的に構成しない場合、新しいピッカーでは既定ですべてのファイルが表示されます。
- HomeGroup の場所は、新しい PickerLocationId 列挙型から除外されました。これは、Windows 10 以降サポートされなくなりました。
- FolderPicker.FileTypeFilter はフォルダーの選択に適していないため、除外されています。
- 非推奨または "使用しない" として既にマークされているメソッドとプロパティを除外します。 たとえば、 PickSingleFileAndContinue、 ContinuationData、 ResumePickSingleFileAsync などです。
- 新しい API は現在、各ユーザーが独自の対話型セッションを持ち、各セッションがデバイス上の他のセッションから完全に独立しているデスクトップ シナリオ向けに設計されているため、マルチユーザー モードのメソッドとプロパティを除外します。 これは、Xbox やその他のマルチユーザー デバイスとは対照的です。
WinRT storage API を使用してデータをAccessする
パッケージ アプリには、UWP アプリで使用できるすべての WinRT storage API にaccessがあります。 既存の UWP アプリを移行する場合でも、新しいアプリを作成する場合でも、これらの API を使用してデータの読み取りと書き込みを行うことができます。 WinUI 3 アプリで storage API を使用する例については、「Windows App SDK API と WinRT API を使用したAccess ファイルとフォルダーを参照してください。
.NET ファイル API を使用してデータにアクセスする
パッケージ化されたデスクトップ アプリでは、WinRT API に加えて、System.IO 名前空間の.NET API を使用して、データの読み取りと書き込みを行うことができます。 新しい WinUI projectが作成されると、Package.appxmanifest ファイルには次の設定が含まれます。
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
この制限付き機能を宣言すると、ファイル システム、レジストリ、およびその他の制限付き機能に対する完全なaccessが提供されます。 詳細については、「 制限付き機能宣言」を参照してください。 つまり、.NET ファイル API を使用する場合、アプリは他の .NET デスクトップ アプリと同じaccessをファイル システムに持っています。
WinUI アプリで .NET API を使用する例については、「Access Windows App SDK API と .NET API を含むファイルとフォルダーを参照してください。
ファイルとフォルダーを操作するためのその他のリソース
パッケージ化された WinUI アプリを開発している場合、WinRT storage API は、データの読み取りと書き込みを行う強力なツールになります。 次の UWP トピックでは、アプリでこれらの API を活用しようとしている開発者向けの豊富な情報を提供します。
| トピック | Description |
|---|---|
| ファイルとフォルダーを列挙してクエリを実行する | フォルダー、ライブラリ、デバイス、またはネットワークの場所のいずれかで、ファイルとフォルダーにアクセスします。 また、ファイルとフォルダーのクエリを作成することで、場所内のファイルとフォルダーに対してクエリを実行することもできます。 |
| ファイルの作成、書き込み、読み取り | StorageFile オブジェクトを使用してファイルを読み書きします。 |
| ファイルへの書き込みのベスト プラクティス | FileIO および PathIO クラスのさまざまなファイル記述メソッドを使用するためのベスト プラクティスについて説明します。 |
| ファイルのプロパティを取得する | StorageFile オブジェクトで表されるファイルのプロパティ (最上位、基本、拡張) を取得します。 |
| HomeGroup コンテンツへのアクセス | ユーザーのホームグループフォルダに保存されている画像、音楽、ビデオなどのコンテンツにアクセスします。 |
| Microsoft OneDrive ファイルの可用性の決定 | StorageFile.IsAvailable プロパティを使用して、Microsoft OneDrive ファイルを使用できるかどうかを判断します。 |
| ミュージック、画像、ビデオ ライブラリ内のファイルとフォルダー | 音楽、画像、またはビデオの既存のフォルダーを対応するライブラリに追加します。 ライブラリからフォルダーを削除したり、ライブラリ内のフォルダーの一覧を取得したり、保存されている写真、音楽、ビデオを検出したりすることもできます。 |
| 最近使用したファイルとフォルダーを追跡する | ユーザーが頻繁にアクセスするファイルを追跡するには、アプリの最近使用したリスト (MRU) にファイルを追加します。 プラットフォームは、最後にアクセスされた日時に基づいて項目を並べ替え、リストの 25 項目の制限に達したときに最も古い項目を削除することで、MRU を管理します。 すべてのアプリに独自の MRU があります。 |
| バックグラウンドでファイル システムの変更を追跡する | アプリが実行されていない場合でも、ファイル システムへの変更を追跡します。 |
| SDカードにアクセスする | 特に、内部storageが制限されている低コストのモバイル デバイスでは、必須ではないデータをオプションの microSD カードに格納してaccessできます。 |
| ファイルプロパティへの迅速なアクセス | Windows Runtime API を介して使用するファイルとそのプロパティの一覧をライブラリから効率的に収集します。 |
こちらも参照ください
Windows App SDK と WinRT API を使用してファイルやフォルダーにアクセスする
Windows developer