1

当我尝试从 Windows 8 照片应用程序共享时从共享目标的 GetStorageItemsAsync() 调用传回给我的 IStorageItems 的路径时,返回的所有项目的路径属性为空。名称(文件名)已正确填充。但是,我需要实际的路径,而且似乎没有办法获得它。

这是 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 回答