如何将文件夹(和子文件夹)从我的解决方案内容复制到IsolatedStorage?

时间:2011-11-08 18:23:57

标签: c# windows-phone-7

我的解决方案中有一个包含内容的文件夹,它包含许多子目录。我需要将此文件夹复制到IsolatedStorage。我读了msdn论坛消息,据说没有办法从代码中获取文件夹内容。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

你在子目录中有很多文件吗?我看到了三个解决方案:

  • 将文件构建操作设置为资源,以便将它们嵌入到dll中。您可以在资源的文件名(MyAssembly.MyFolder.Filename.extension)中检索文件夹anme。但它会减慢程序集的加载速度,从而降低应用程序的启动时间。

  • 将文件构建操作设置为内容,以便它们包含在XAP文件中,但我不确定您是否可以在不知道路径的情况下迭代内容

  • 您可以将内容放在远程服务器上的压缩文件中,在第一次启动时获取,并使用http://slsharpziplib.codeplex.com/解压缩隔离存储中的内容。

答案 1 :(得分:0)

Mighter,

如果我理解你的话,你需要文件夹的内容以及隔离存储中的子目录,对吧?将它们放入您的解决方案只会让他们进入XAP。

您可以使用Windows Phone SDK 7.1附带的Isolated Storage Explorer来操作隔离存储中的文件存储。这将是将文件夹的内容导入Iso的最简单方法。

您可以从here开始了解Isolated Storage Explorer [ISETool.exe]。

希望这有帮助!

答案 2 :(得分:0)

论坛是对的。无法枚举“内容”资源。

您可以设置构建操作“资源”或“嵌入式资源”,如某些答案所示 - 然后有方法使用ResourceManager or similar means枚举资源。但是我不会推荐它,因为这会将所有资源嵌入到你的程序集中,并使你的应用程序加载缓慢。

这是一个similar question(关于枚举图像文件)。没有解决方案。 answer of Matt包含唯一的解决方法:在设计时准备文件名列表,并将此列表构建到应用程序中。然后,不是在运行时枚举文件,而是从此列表中逐个读取文件名。

如果您只需要开发和测试,那么我也建议您查看ISETool。您使用参考存储设置应用程序一次,并使用该工具保存隔离存储的状态。当您需要从隔离存储中恢复状态时,您可以使用该工具将保存的状态复制回手机或仿真器。可以在this blog post中找到执行此操作的示例。