none
UWP程序如何在后台加载一个文件 RRS feed

  • 问题

  • Hi all,

    我在做一个UWP项目,现在有一个问题,我的这个UWP程序需要加载一个xml文件,这个文件的Build Action是Node,Copy to Output Directory是Copy if newer。请问一下我如何在后台用代码加载这个文件。

    我知道的是在WPF中我可以利用Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory)获得这个路径,而在UWP中并没有AppDomain这个实例。请问有什么方法?

    Best wishes,
    Lee

    2017年9月15日 5:33

答案

  • 你好,

    你的问题其实是获取安装包文件,UWP里获取安装包文件是和WPF完全不同的,UWP是运行在一个沙盒环境下的,你无法通过路劲去获取文件,因为这样在UWP中会被认为是不安全的。

    这里,根据你的描述,假如你的这个xml文件在你项目的根目录下面,那么你可以用下面的方式去获取这个文件:

    var xmlfile = Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("yourxmlfile.xml");
    谢谢


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.



    2017年9月18日 6:19

全部回复

  • 你好,

    你的问题其实是获取安装包文件,UWP里获取安装包文件是和WPF完全不同的,UWP是运行在一个沙盒环境下的,你无法通过路劲去获取文件,因为这样在UWP中会被认为是不安全的。

    这里,根据你的描述,假如你的这个xml文件在你项目的根目录下面,那么你可以用下面的方式去获取这个文件:

    var xmlfile = Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("yourxmlfile.xml");
    谢谢


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.



    2017年9月18日 6:19
  • xml文件可以嵌入到C#代码中,以字符串的形式。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年9月20日 0:37
  • Hi Xavier 感谢你的帮助,首先Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync确实时正确的的方式,不过也发现了一个问题这个方法是取到Appx文件夹中的文件,不过我发现如果xml文件我这样设置的话是在Debug文件也就是这个Appx的上一层。 请问有什么设置可以让xml文件在rebuild后在Appx中生成呢?是不是需要加一个Appx文件夹在项目中? Best wishes, Lee
    2017年9月20日 6:36
  • Hi Shuanghua,

    感谢你的帮助,很抱歉我做的这个程序设计要求不能这么设置。

    Best wishes,

    Lee

    2017年9月20日 6:36
  • Hi Xavier,

    问题我已经有了初步方案,感谢你的帮助,只需要增加一个AppX文件夹即可。

    Best wishes,
    Lee

    2017年9月20日 7:37