是否可以在Windows Phone 7上读取用户文件?如果有,怎么样?

时间:2010-10-18 05:46:04

标签: c# silverlight windows-phone-7

我正在构建一个显示一堆图像的应用程序(例如幻灯片放映),但我不想让用户能够选择这些文件或文件夹。我不知道怎么做(我已经读过一些关于IsolatedFileStorage的内容,但是不明白这是否意味着我无法查看用户文件)。

编辑:我发现了一种从用户中选择图像文件的方法,只需调用PhotoChoserTask Show()方法,但它只显示设备所有者的“我的图像”文件夹并允许选择图片。这不是我想要的,因为我希望能够加载整个文件夹甚至图片容器(例如拉链,我不知道)。即使使用这种方法,我也无法搜索音乐文件。

提前致谢!

2 个答案:

答案 0 :(得分:2)

在此情况下,您只能使用照片选择器任务访问应用程序之外的文件和图像,此时无法迭代图片中心中没有它的图像。但是,您可以使用XNA MediaLibrary方法迭代手机上的非DRMed音乐和专辑封面 - 但是您无法看到文件,除了隔离存储之外,您的应用程序没有文件系统的概念,因此您自己的应用程序沙箱,您可以使用IsolatedStorage技术迭代自己的文件 - 但不能在应用程序之外。

答案 1 :(得分:2)

如果您提供更清晰的“用户文件”定义,将会有所帮助。这些文件照片是从网上下载的,由用户使用CameraCaptureTask下载,由用户使用PhotoChooserTask选择,还是随应用程序一起提供?以编程方式访问集线器中的图片存在限制。如您所见,您只能访问某个文件夹。

您始终可以使用独立存储,构建目录结构,允许用户选择新目录(您甚至可以允许用户为新目录选择一个名称)并将选择器中的图片保存在那里,或者。如果文件已从Web下载,请将其保存到新创建的目录中。隔离存储允许您列出所有目录和所有目录中的所有文件。因此,当用户希望打开一个项目时,您可以显示一个目录列表,然后在每个目录中的一个文件列表(点击该目录),从列表中点击一个项目(一个文件)然后打开它。

可以通过多种方式使用隔离存储来设计和构建Windows Phone 7应用程序。查看my list of Windows Phone 7 resources中的隔离存储部分,我相信您会在那里找到一些有用的帖子/文章。

编辑:您似乎正在考虑下载媒体,存储它们并按需播放它们。您将需要使用WebClient或HttpWebRequest(小心跨线程问题)来下载媒体和显示/存储。 Here is a nice example by Tim Heuer会指出正确的方向。

希望这会有所帮助。 indyfromoz