0

質問

ユーザーがFileOpenPickerを使用してアプリにファイルを提供した場合、それは可能であり、可能であれば、アプリケーションのライフサイクルのシャットダウン全体でそのファイルへの参照を保持するにはどうすればよいですか?

問題

機能によって与えられたプログラムによるアクセスを使用することはできません。ファイルは、機能によってアクセスが許可されているフォルダー以外の場所から開かれる可能性があるためです。

この例

テキストファイルエディタを作成していますが、中断時にコンテンツを保存し、開始時に復元できますが、これは問題ではありません。問題は、ユーザーがファイルを開き、いつでも[保存]をクリックしてプロンプトなしで保存できることです。これは、プライベートフィールドのようにStorageFileへの参照を保持しているためです。アプリケーションがシャットダウンした場合、ユーザーにプロンプ​​トを表示せずにそのStorageFileを再度取得する方法はないようです。

WindowsStoreアプリの詳細

ライフサイクル

Windowsストアアプリでは、ユーザーがアプリから離れるとアプリが一時停止され、マシンにメモリ不足がある場合はシャットダウンされます。パターンは、一時停止時に保存し(シャットダウンを処理する方法がないため)、保存されたデータをロードして次の開始時に再開することです。

ファイルからのデータの読み取り

Windowsストアアプリでは、ファイルにアクセスする方法が2つあります。ユーザーにFileOpenPickerを使用してファイルを提供してもらうか、一部のフォルダーへのプログラムによるアクセスを提供する機能にオプトインすることができます。

4

1 に答える 1

2

このソリューションを使用できます:http://www.jonathanantoine.com/2012/08/06/keep-access-to-filesfolders-the-user-granted-you/

FutureAccessListに保存します。

var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();

StorageApplicationPermissions.FutureAccessList.AddOrReplace(Token, folder);

そしてそれを取り戻す:

var folder = await StorageApplicationPermissions
    .FutureAccessList.GetFolderAsync(Token);
于 2012-11-09T10:10:36.410 に答える