所以我有一个 Qt 程序可以保存文件等等。我在 C:/ 目录中保存了一些文件。当我在 Windows 资源管理器、cygwin 或命令提示符中查找该文件时,我找不到该文件。我检查了我的文件夹选项,看起来不错。尽管无法找到该文件,但当我需要在我的 Qt 程序中加载文件时,该程序能够找到该文件。只有我的程序能够找到该文件,Windows 不能。我以管理员身份登录,但这可能与权限有关吗?
此外,可能值得注意的是,当我将文件保存在 c:/users/me/Documents/folder/folder 中时,我似乎没有问题。
保存文件的代码:
QString saveFileName = QFileDialog::getSaveFileName(this,"Select the file you wish to save to.","","");
QFile saveFile(saveFileName);
if(saveFile.open(QIODevice::WriteOnly))
{
QTextStream stream(&saveFile);
QString stringToSaveToFile;
stream << stringToSaveToFile;
saveFile.close();
}
else
{
QMessageBox::warning(this, "Error", "Cannot open file.");
}
打开文件的代码:
QString selectedFile = QFileDialog::getOpenFileName(this, "Select a .pro file.", "", tr("Profile file (*.pro);;All (*.*)"));
QString fileContents;
QFile file(selectedFile);
if (file.open(QIODevice::ReadOnly) | (QIODevice::Text))
{
QTextStream in(&file);
fileContents = in.readAll();
}
else
{
QMessageBox::warning(this, "Error", "Unable to open file.");
}
编辑:刚刚在另一台计算机上尝试过。我的电脑有windows 8,另一台电脑有windows XP。我无法在 XP 机器上复制该问题。
编辑:
我相信我已经找到了问题所在(http://answers.microsoft.com/en-us/windows/forum/windows_vista-files/windows-explorer-compatibility-files/5b377209-cfe4-4be6-959d-e1de4b8be16d) ,但我仍在尝试找出解决方法。
我试图保存到 c:/ 目录的文件实际上保存在 C:/users/username/AppData/Local/VirtualStore 中。
有没有办法以某种方式覆盖它?