如何从Windows 8照片应用程序获取路径作为共享目标?

时间:2012-11-11 19:48:26

标签: c# windows windows-8 windows-store-apps

当我尝试从Windows 8 Photos应用程序共享时,从共享目标的GetStorageItemsAsync()调用中将IStorageItem传递给我的路径时,返回的所有项目的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));

上面的路径始终为空。

3 个答案:

答案 0 :(得分:2)

你确定需要这条路吗?无法保证您可以自行访问文件。例如,如果您没有照片库访问权限,则无法访问那里的物理图像。如果您无法访问互联网,您将无法访问来自Facebook和Flickr的访问权限。有些也可能来自SkyDrive,您可能根本无法直接访问它们。

有些应用可能会动态生成图像,只需创建带有结果的StorageItem即可。

StorageItem旨在从中抽象出来。您可以获得共享的实际文件,而不是其他一些间接文件。

答案 1 :(得分:0)

您可能还想通过Windows帐户检查共享设置。可以更轻松地解决您的问题。

答案 2 :(得分:0)

看来IStorageItem只是基类。真正被返回的是IStorageFile,它包括作为共享过程一部分创建的临时文件的基本流。

因此,将IStorageItem转换为IStorageFile,您将处于良好状态以处理返回的文件。