【问题标题】:uwp, how to access local data directoryuwp,如何访问本地数据目录
【发布时间】:2019-07-12 13:51:09
【问题描述】:

在过去的几年中,我开发了几个共享 C++ 代码的技术应用程序,尤其是在矢量图形方面。这些应用程序始终在 Windows 和 Linux 上运行。最近,我一直在努力让这些应用程序在现在为两种操作系统提供和鼓励的受保护环境中运行。像我之前的许多人一样,我正在努力解决在 Windows UWP 环境中访问应用程序数据的问题。

这似乎应该是一件简单的事情,我想要的操作系统只是一个目录的名称,我可以在其中存储和访问一些文件。我不在乎那个名字是什么,也不在乎操作系统想要限制对它的访问,我只想要一个我可以使用的目录的名字。

当然,我的研究将我带到了这个网页:https://docs.microsoft.com/en-us/uwp/api/Windows.Storage.ApplicationData#Windows_Storage_ApplicationData_LocalSettings。但是示例 C++ 代码还有很多不足之处,例如所需的头文件和库文件。我不能只是将该代码放入 .cpp 文件并获取目录名称。看来我需要为 winRT 建立一个完整的环境才能有希望使用该代码,但这并不是一件小事,到目前为止我还没有成功。我不明白为什么要获得如此简单而关键的信息需要这么多的麻烦。否则,我没有使用 winRT 的愿望,而且它不是有效地利用我的时间来理解它的所有细节。它不能解决我的应用程序的任何目标。我只想要一个可以从标准 C++ 调用的简单函数来获取目录名称。问的太多了吗?

坦率地说,微软让我得出结论,它不希望独立开发 Windows 应用程序。为 Linux 开发要容易得多。 Linux 做了操作系统需要做的事情,而不会设置不必要的障碍。我也非常希望这些应用程序也能在 Windows 下运行,但是我可以投入多少时间和精力是有限度的,而且微软似乎在其技术的每一次迭代中都进一步推动了这一要求。

【问题讨论】:

    标签: windows uwp windows-runtime local store


    【解决方案1】:

    对于任何感兴趣的人,我开发了一个库来检索商店应用程序数据目录,其中包含可以从桌面应用程序调用的功能。源代码和二进制文件可以在以下位置找到:

    https://github.com/timhirrel/TdhWinRT

    【讨论】:

      【解决方案2】:

      ApplicationData 位于 Windows::Storage 命名空间中,并且必须在 c++ 示例的第一行中

      StorageFolder^ localFolder = Windows::Storage::ApplicationData::Current->LocalFolder;
      

      除非你添加using namespace Windows::Storage; 如果要获取文件夹路径为 wchar_t*

      const wchar_t* wPath = localFolder->Path->Data();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-20
        • 2017-07-13
        • 1970-01-01
        • 2019-10-22
        相关资源
        最近更新 更多