正如指出的用C编写的配置文件:\程序文件(x86)\ MyApp的\ myapp.cfg,对管理员权限,这是不是写在配置文件中是一个好主意C:\Program Files (x86)\MyApp\myapp.cfg
.
而不是这个,我的软件现在将其数据保存在子目录中%ALLUSERSPROFILE%
(例如:C:\ProgramData\MyApp\myapp.cfg
在Win7上)
[我myfile = open(filename, 'a')
在Python中使用它来执行此操作.]
我现在遇到有关此文件的问题:
User A
,然后运行它,然后C:\ProgramData\MyApp\myapp.cfg
编写了文件.User B
,并再次运行我的软件:现在显示错误:User 2
无权写入C:\ProgramData\MyApp\myapp.cfg
(Permission denied
).为什么?不是%ALLUSERSPROFILE%
所有用户都可以写的地方吗?如何解决这个问题呢 ?
我正在使用C#和.net 2.0
我将程序数据保存在以下文件中: C:\Program Data\MyProgramName\fileName.xml
安装并运行我的应用程序一次后我卸载它(在卸载期间我从"程序数据"中删除所有文件)然后重新安装应用程序,然后运行它.
奇怪的是,我的应用程序就像程序数据中存在的文件一样启动 - 意思是,即使数据文件被删除,我的应用程序中也有旧数据.
运行时:
File.Exists("C:\ Program Data\MyProgramName\fileName.xml")
即使我确定该文件不存在,我仍然"真实".
当我以管理员身份运行应用程序然后文件不存在时,事情就变得陌生了.
经过研究,我发现在运行我的应用程序时没有管理员权限而不是获取:
"C:\ Program Data\MyProgramName\fileName.xml"我得到"C:\ Users\userName\AppData\Local\VirtualStore\ProgramData\MyProgramName\fileName.xml"
确实有一个文件存在于以前的安装中(我显然没有删除,因为我不知道它存在).所以请指导我如何在没有管理员权限的情况下运行应用程序时停止此操作.我不想在VirtualStore文件夹中自动创建任何文件.请讨论阻止这种情况的所有可能方法.谢谢