別のプログラムのアプリケーション データ内のファイルにアクセスする必要がある Windows 8 アプリを作成しています。Windows のファイル許可ガイドラインを読みましたが、それを行う方法がわかりませんでした。これは可能ですか?もしそうなら、どうすればそれを行うことができますか?
5 に答える
winrtAPIを使用することはできません。これは、プロセスごとのIsolatedStorageのようなものです。
Windowsストアアプリでのファイルアクセスとアクセス許可
ただし、Hackを使用すると、サンドボックス環境をバイパスできます。
簡単なトリックを使用してWinRT/Metroサンドボックスをバイパスする方法。サンプル+ガイド
ただし、このようなアプリは、AppStoreへの送信中にWindows8の互換性テストに合格しません。
Windows8storで.netを使用する方法がわからない場合は不可能です。
これにより、保存場所を取得できます。
using Windows.Storage;
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
これにより、アプリのURIでデータを取得できます。
using Windows.Storage;
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync("ms-appdata:///local/file.txt");
これは Windows ストア アプリからはできません。それらはサンドボックス化されており、インターネットやカメラなどへのアクセスなどの機能を宣言する必要があり、他のアプリ データを読み取りたいと宣言することはできません。
私は自分の答えを見つけました。フォルダー ピッカーでユーザー フォルダーを選択するようにユーザーに指示できます。次に、そのアクセス許可を取得したら、アプリケーション データ フォルダー内の必要なファイルにプログラムで移動できます。
この答えは、他のアプリケーションとアクセスしようとしているファイルの種類によって異なりますが、共有コントラクトのサポートを実装して、受け入れるファイルの種類をWindowsに伝えることができます。その後、ユーザーは他のアプリケーションを使用して、必要に応じてアプリケーションと共有できます。ただし、取得しようとしているデータについて詳細を提供していないため、これがニーズに対してどれほど実行可能かはわかりません。