Qt QFileInfo :: exists()在C:// Program Files

时间:2015-12-09 20:24:13

标签: c++ qt

似乎在Windows上我不能再写入Program Files或Program Files(x86)目录或其子目录。

我不明白的是,当我检查以下内容时,我的应用是如何让这种情况发生的

QFile newfile("C://Program Files/target.rar");
QFileInfo newfileInfo("C://Program Files/target.rar");

newfile.exists(); //returns true
newfile.isWritable(); // returns true
newfileInfo.exists(); // returns true
newfileInfo.isWritable(); // returns true   

这些都不应该在Program Files中返回true。 奇怪的是,它实际上会写入这个不存在的文件,即使没有任何内容,也不会产生写入错误。

1 个答案:

答案 0 :(得分:1)

您可能是UAC Virtualization的受害者。检查%userprofile%\AppData\Local\VirtualStore\Program Files以查看您的文件是否存在。