当我尝试从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));
上面的路径始终为空。
答案 0 :(得分:2)
你确定需要这条路吗?无法保证您可以自行访问文件。例如,如果您没有照片库访问权限,则无法访问那里的物理图像。如果您无法访问互联网,您将无法访问来自Facebook和Flickr的访问权限。有些也可能来自SkyDrive,您可能根本无法直接访问它们。
有些应用可能会动态生成图像,只需创建带有结果的StorageItem即可。
StorageItem旨在从中抽象出来。您可以获得共享的实际文件,而不是其他一些间接文件。
答案 1 :(得分:0)
您可能还想通过Windows帐户检查共享设置。可以更轻松地解决您的问题。
答案 2 :(得分:0)
看来IStorageItem只是基类。真正被返回的是IStorageFile,它包括作为共享过程一部分创建的临时文件的基本流。
因此,将IStorageItem转换为IStorageFile,您将处于良好状态以处理返回的文件。