1

我无法在 windows phone 8 中显示我的图片库照片的真实姓名。我有一张照片,其原始名称为:chucktodd-einstein-2010-1.jpg、chucktodd-einstein-2010-2.jpg、查克托德-爱因斯坦-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 书写”。

如何获得原名?

4

4 回答 4

2

我找到了这个库并解决了这个问题:

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));
}

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

于 2013-07-23T21:48:28.640 回答
0

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

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

于 2013-07-16T13:49:19.103 回答
0

正如官方文档显示的那样,在访问MediaLibrary和循环结果Picture列表时,每个图像都没有相对路径、绝对路径或文件名。

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

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

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

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

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

您可能很想使用该name属性(即描述)来生成类似桌面的文件名,但name似乎是可选的,因此根据我的经验,它大部分时间都是空白的。

于 2013-07-16T13:15:38.400 回答
0

你可以试试这个:

r.getPath();

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

于 2013-07-16T09:19:03.850 回答