Xml文件保存在两个不同的路径

Xml file are saved in two different path

本文关键字:两个 路径 保存 文件 存在 Xml      更新时间:2023-10-16

我创建了一个应用程序,它将一些数据存储到XML文件中。问题在于XML保存的路径。我使用TinyXML在vc++中保存数据。

当我部署这个应用程序时,它安装在"C:Program files(x86)applicationname "中,当我运行应用程序时,XML文件保存在

"C:UsersUserNameAppDataLocalVirtualStoreProgram Files (x86)ApplicationName ".

我已经使这个应用程序在系统启动时工作。所以当我重启这个应用程序时,xml文件存放在不同的路径"C:UsersUserNameAppDataLocalVirtualStorewindowssysWOW64"

我希望我的XML存储在我安装的路径或应该存储在appdata,应用程序名称

我应该如何将XML文件存储在安装应用程序的地方?

doc.SaveFile( "test.xml" ); // xml saving code in tinyxml library

首先,这与c++无关,因为c++代码可能正在工作。XML和tinyxml,甚至visual c++也是如此。

似乎windows将这些写访问重定向到用户特定的"VirtualStoreProgram Files",但我将把它留给你去研究它的实际语义。在启动时,当没有用户时,这个路径明显不同,因为前一个用户没有登录。

现在,为了获得一个固定的路径,您可以使用GetModuleFileName()函数来查找可执行文件的位置,并使用该路径来定位Smartmeter.xml。但是,您现在面临的问题是,安装在"程序文件"下的程序不会神奇地获得对其安装目录的写访问权限。这是为了防止一个用户弄乱另一个用户的数据。

我认为你所做的是写一个在后台运行的程序,在MS Windows中被称为"服务"。现在还不清楚的是你想用这个文件实现什么,以及你打算做什么,这些都是决定未来步骤的事情。在任何情况下,看看服务提供的可能性,也许有一些适合你的需求。