1

Windows 8 フォト アプリから共有するときに、共有ターゲットの GetStorageItemsAsync() 呼び出しから返された IStorageItems からパスを取得しようとすると、返されるすべてのアイテムの Path プロパティが空です。名前 (ファイル名) が正しく設定されています。ただし、実際のパスが必要ですが、それを取得する方法がないようです。

これは Windows 8 のフォト アプリのバグですか、それとも何か間違っていますか?

アイテムのリストを取得するための私のコード:

this.sharedStorageItems = await this.shareOperation.Data.GetStorageItemsAsync();

リストを反復処理する私のコード:

// Display the name of the files being shared.
var files = new List<String>();
for (int index = 0; index < this.sharedStorageItems.Count; index++)
    files.Add(String.Concat(this.sharedStorageItems[index].Path, "\\", this.sharedStorageItems[index].Name));

上記のパスは常に空です。

4

3 に答える 3

2

本当にパスが必要ですか? ファイル自体にアクセスできるという保証はありません。たとえば、フォト ライブラリへのアクセス権がない場合、そこにある物理的な画像にアクセスすることはできません。インターネットにアクセスできない場合は、Facebook や Flickr からのものにアクセスできません。一部は SkyDrive からも取得される場合があり、それらに直接アクセスできない場合があります。

一部のアプリでは、結果を使用して StorageItem を作成するだけで、オンザフライで画像を生成できます。

StorageItem はこれからあなたを抽象化するためのものです。他の間接的なものではなく、共有されている実際のファイルを取得します。

于 2012-11-11T20:35:24.237 に答える
0

Windows アカウントから共有設定を確認することもできます。あなたの問題に対するはるかに簡単な解決策になる可能性があります。

于 2012-11-12T05:10:27.337 に答える
0

IStorageItem は単なる基本クラスのようです。実際に返されるのは、共有プロセスの一部として作成された一時ファイルのベース ストリームを含む IStorageFile です。

したがって、IStorageItem を IStorageFile としてキャストすると、返されたファイルを操作するのに適した状態になります。

于 2012-11-13T17:14:33.570 に答える