2010-10-18 65 views
1

我正在构建一个显示一堆图像(如幻灯片)的应用程序,但我不希望用户能够选择这些文件或文件夹。我不知道如何做到这一点(我已阅读了有关IsolatedFileStorage的一些内容,但不明白这是否意味着我无法查看用户文件)。是否可以阅读Windows Phone 7上的用户文件?如果是,如何?

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

在此先感谢!

回答

2

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

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

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

编辑:看来你正在寻找下载媒体,存储它们并按需播放它们。您将需要使用WebClient或HttpWebRequest(注意跨线程问题)来下载媒体和显示/存储。 Here is a nice example by Tim Heuer这将指向你正确的方向。

希望这会有所帮助。 indyfromoz

+0

让我们看看我是否明白:这个独立存储不像临时文件夹,它在应用程序关闭或手机关机后仍然存在于手机中,对吗?另外,如果我想查看用户个人文件(如那些不是图像或类似的文件),我必须通过应用程序下载它们,这是正确的吗?最后的答案是......我创建的这个文件夹对用户而言是phisically出现的,所以他可以不用他通过应用程序下载文件,而只需将文件放在文件夹中(通过从他的计算机访问他的手机或通过一个文件浏览器)? – 2010-10-18 12:16:49

+0

是的,它仍然存在。它的名为IsolatedStorage因为所有来自一个应用程序的数据都与所有其他应用程序隔离。对于您的应用程序,独立存储是它可以看到的* only *文件。您无法从计算机上看到此文件夹,除了在手机上使用您的应用程序,用户无法将文件放入其中。 – 2010-10-18 16:13:09

+0

这意味着获得内容的唯一方法是通过web服务?还是有另一种不涉及在移动设备中下载50 MB文件的方式? – 2010-10-18 18:29:03

2

在这种情况下,只能使用照片选择器任务在您的应用程序之外访问文件和图像,因为您一直在尝试执行该操作,此时无法通过图片集线器中的图像进行迭代。但是,您可以使用XNA MediaLibrary方法遍历手机中的非DRMed音乐和专辑封面 - 但您无法看到这些文件,除了孤立存储之外,没有适用于您的应用程序的文件系统概念,因此您自己的应用程序沙箱,您可以使用IsolatedStorage技术无论如何迭代自己的文件 - 但不在应用程序之外。

相关问题