VS2008编写的程序,在C:\Program Files\test目录下创建文件写日志,在程序界面上能直接打开日志(证明文件存在),但是在C:\Program Files\test目录下没有文件,文件跑到C:\Users\xxy\AppData\Local\VirtualStore\Program Files\test这里去了,目录不是写死的,是根据.exe程序获取(放在C:\Program Files\test下),.exe程序是普通用户拥有管理员权限,界面上打开日志是用记事本打开的,打开之前把路径显示在界面上,就在C:\Program Files\test下,有大神知道是啥原因吗?
这是正常的,如果你的程序没有管理员权限,windows 7会使用沙箱机制来运行程序,那么所有被定为到敏感路径中的文件都会重定向到用户自己的文件夹下。
日志文件,是不是没有关闭?
你可以试着不在界面上显示路径,而是通过 TRACE 将路径输出,看看结果是否正确。
这是微软为了保证第三方应用程序的兼容性,提供的 UAC虚拟化访问 机制,如果不想受这个机制的影响,可以在Manifest声明是支持Vista以上版本系统而开发的,请Windows为我关闭UAC虚拟化访问
另外,微软提供了一个叫SHGetKnownFolderPath的API可以获取准确位置
受教了,我也是来看答案的。
这是安装VS2008后,没有将解决方案的路径设置为自定义的目录下。而是使用了vs2008安装后的默认路径造成的
http://blog.csdn.net/chenlycly/article/details/28959293
You can go to here to see!!!