在windowsphone 8中获取照片的真实姓名

本文关键字:真实 照片 获取 windowsphone | 更新日期: 2023-09-27 18:22:18

我无法在windows phone 8中显示我的图片库照片的真实名称。我有一张照片,原名是:chucktod-einstein-2010-1.jpg,chucktod-einstein-2010.2.jpg,Chucktod-ein stein-2010-3.jpg。

我执行这个代码:

MediaLibrary m = new MediaLibrary();        
for (int j = 0; j < m.Pictures.Count; j++)
{
     var r = m.Pictures[j];
     MessageBox.Show(r.Name);
}

MessageBox总是显示这样的名字:"爱因斯坦在黑板上写着查克·托德2010年的粉笔画"。

你如何获得原名?

在windowsphone 8中获取照片的真实姓名

我找到了这个库并修复了这个问题:

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.phoneextensions.medialibraryextensions.getpath(v=xnagamestudio.42).aspx

using Microsoft.Xna.Framework.Media.PhoneExtensions;
MediaLibrary m = new MediaLibrary();        
for (int j = 0; j < m.Pictures.Count; j++)
{
  var r = m.Pictures[j];
  MessageBox.Show(MediaLibraryExtensions.GetPath(r));
}

使用此代码,我获得了具有原始名称的文件的完整路径。

你可以试试这个:

r.getPath();

然后剥离路径中的文件夹。

如官方文档所示,当访问MediaLibrary并在生成的Picture列表中循环时,每个图像都没有相对路径、绝对路径或文件名。

但是可以访问日期、名称(描述,如果有的话)和其他一些属性,所以解决方案是在需要时生成自己的文件名。

如果我们看看内置的Windows Phone相机应用程序和自动上传到Skydrive功能是如何工作的,我的Skydrive相机卷有以下文件名:

  • WP_20130716_001.jpg
  • WP_20130716_002.jpg
  • WP_20130716_003.jpg

上面的模式很容易看到复制(并用您的应用程序名称替换WP):

  • WP(下划线)ISO日期格式(下划线)图像编号

您可能会想使用name属性(即描述)来生成类似桌面的文件名,但name似乎是可选的,所以根据我的经验,它大多数时候都是空白的。

MediaLibrary API不提供对原始文件名的访问。

Picture.Name似乎具有保存图片的应用程序所给定的名称。例如,对于通过IE从web下载的图像,它包含类似C:'Data'Users'DefApps'AppData'INTERNETEXPLORER'Temp'Saved Images'image.jpg的内容。如果图像由SkyDrive应用程序保存,则该名称根本不包含.jpg扩展名。