Win 8 Metro style app中(c#),我现在想访问AppX中的文件是遇到有两个问题:
一个操作是压缩。 比方AppX有一个CompressFolder文件夹,我准备把它打包成zip文件。(bin\..\AppX\CompressFolder.zip)
另一个问题是:拷贝AppX里面的文件夹CompressFolder到其它文件夹中,如C盘或者Document中。
但是两个操作都失败了,可能是权限问题吧,请问该如何解决呢?
谢谢!
1. Metro 里面你可以通过 http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.aspx 这里 提供的类型 去访问应用所在的数据目录,或者本机的库,例如图片库和文档库。对于库的访问,你需要在appxmanifast指定访问库的权限:
2. Metro中你的应用要访问特定扩展名类型的文件,你需要指定这个应用对应这个类型的关联关系。 http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx#file_activation
这样才能正确的让你的应用访问打开.zip文件。
3. Metro程序运行在沙箱,不是任意文件系统位置都可以访问的,如果你要访问指定位置,比如C盘,你需要通过File Picker 来访问。http://msdn.microsoft.com/en-us/library/windows/apps/hh465174.aspx
4. .Net For Metro 提供了压缩打包的API, 你可以使用它来压缩: http://msdn.microsoft.com/en-us/library/windows/apps/system.io.compression(v=vs.110).aspx
几个相关文件系统访问的例子,你可以学习参考:
Bob Bao [MSFT] MSDN Community Support | Feedback to us