gpt4 book ai didi

windows-7 - 如何防止文件重定向到 VirtualStore 来读/写文件?

转载 作者:行者123 更新时间:2023-12-02 21:44:46 27 4
gpt4 key购买 nike

我正在使用 C# 和 .net 2.0

我将程序数据保存在以下文件中:C:\ProgramData\MyProgramName\fileName.xml

安装并运行我的应用程序一次后,我将其卸载(在卸载过程中,我从“程序数据”中删除了所有文件),然后重新安装了该应用程序,并运行了它。

奇怪的是,我的应用程序启动时就好像程序数据中的文件存在一样 - 意味着,即使数据文件已被删除,我的应用程序中也有旧数据。

运行时:

File.Exists("C:\ProgramData\MyProgramName\fileName.xml")

尽管我确信该文件不存在,但我得到了“true”。

当我以管理员身份运行应用程序时,事情变得很奇怪,然后文件不存在。

经过研究,我发现在没有管理员权限的情况下运行我的应用程序时,而不是得到:

C:\ProgramData\MyProgramName\fileName.xml

我明白了

C:\Users\userName\AppData\Local\VirtualStore\ProgramData\MyProgramName\fileName.xml

确实有一个文件存在于以前的安装中(我显然没有删除它,因为我不知道它存在)。

<小时/>

所以请指导我,当应用程序在没有管理员权限的情况下运行时,如何才能停止此操作。

我不想在 VirtualStore 文件夹中自动创建任何文件。请讨论阻止这种情况的所有可能方法。

最佳答案

首先,问问自己,是否需要为所有用户全局保存?

如果不需要,请将文件保存在应用程序数据中,您可以使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)获取路径,它应该始终可靠地扩展为C:\Users\用户名\AppData\Roaming\。请注意,该路径对于每个用户来说都是唯一的。

如果你必须这么做,那你就运气不好了。在任何 Windows XP 后的 Windows 上,没有可靠的方法来存储所有没有管理员权限(或 UAC)的用户的应用程序数据,这不是非常 hacky,比如将您的数据存储在公共(public)用户中(这可能是可能的,也可能是不可能的,我可以'现在不要检查)。

关于windows-7 - 如何防止文件重定向到 VirtualStore 来读/写文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com