uwp,如何访问本地数据目录

时间:2019-02-19 06:08:37

标签: windows uwp windows-runtime local store

在过去的几年中,我开发了一些技术应用程序,它们共享许多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 ++调用它来获取目录名。问得太多了吗?

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

enter image description here

这是构建代码时得到的屏幕截图。我将代码添加到class.cpp文件中,该文件是在添加新的“ Windows运行时组件(通用Windows)”项目时创建的。

很明显,这里缺少很多东西,我需要的解释是不需要Microsoft特定技术的扎实背景(我没有也不想拥有)。不需要扎实的Microsoft技术背景的解决方案会更好。为什么Microsoft想要做到这一点,以便唯一能够为Windows编程的人是愿意将所有时间都花在学习Windows上的人,这是很难理解的。还有其他途径没有如此繁琐的要求。

答案 2 :(得分:0)

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

https://github.com/timhirrel/TdhWinRT