我要求用户选择QFileDialog的文件夹:
QString directory = QFileDialog::getExistingDirectory(this,"Caption","",
QFileDialog::ShowDirsOnly);
我希望用户能够选择所有文件夹,但是QFileDialog无法找到C:/ Windows / System32 / spool /,我怀疑可能还有其他文件夹。
我已尝试设置标记QFileDialog::HideNameFilterDetails
以查看隐藏文件,但这不起作用。
这个问题有解决方法吗?
答案 0 :(得分:1)
当您在64位Windows上运行32位应用程序时,这似乎是一个问题。如果使用本机x64编译器编译应用程序,则应该能够看到假脱机文件夹。最糟糕的情况是,您可以编写一个简单的64位本机应用程序来显示文件夹浏览器并运行32位应用程序并与64位应用程序通信以获得结果。
我希望禁用WOW64 File System Redirector就足够了,但它没有帮助。根据{{3}},如果您使用Wow64DisableWow64FsRedirection
禁用流程中所有线程的重定向,它可能会起作用,但即使是回答问题的人也不建议使用此方法。
答案 1 :(得分:0)
您无法使用该静态功能查看所有文件夹。 QFileDialog在幕后进行了一些额外的过滤,并且使用静态函数getExistingDirectory无法以任何明显的方式关闭此过滤。
您可以通过以下方式查看所有文件夹,包括隐藏的文件夹:
QFileDialog fd;
fd.setFilter(QDir::Hidden);
fd.setFileMode(QFileDialog::Directory);
fd.exec();
QString directory = fd.directory().path();