QFileInfo::isExecutable() returns 对于“.exe”文件为 false
QFileInfo::isExecutable() returns false for ".exe" file
我正在尝试允许将 .exe 单元测试文件拖放到 QMainWindow
中。我的 dragEnterEvent
看起来像这样:
void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls())
{
QFileInfo info(e->mimeData()->urls().first().fileName()); // this works
if (info.isExecutable()) // false for .exe??
e->acceptProposedAction();
}
}
但是 isExecutable()
函数 return 对于 .exe 文件是错误的。
我有权访问该文件,并且我已验证 info
中的文件路径正确指向可执行文件。
this question 的答案使得任何带有 .exe 扩展名的文件看起来都应该 return true
,所以为什么 QFileInfo::isExecutable()
returning假的?
尽管 QFileInfo info(e->mimeData()->urls().first().fileName()
似乎为可执行文件提供了有效的 QFileInfo
,但它实际上并没有完全正常工作。
使用 toLocalFile()
而不是 fileName()
解决了问题。
我正在尝试允许将 .exe 单元测试文件拖放到 QMainWindow
中。我的 dragEnterEvent
看起来像这样:
void MainWindow::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls())
{
QFileInfo info(e->mimeData()->urls().first().fileName()); // this works
if (info.isExecutable()) // false for .exe??
e->acceptProposedAction();
}
}
但是 isExecutable()
函数 return 对于 .exe 文件是错误的。
我有权访问该文件,并且我已验证 info
中的文件路径正确指向可执行文件。
this question 的答案使得任何带有 .exe 扩展名的文件看起来都应该 return true
,所以为什么 QFileInfo::isExecutable()
returning假的?
尽管 QFileInfo info(e->mimeData()->urls().first().fileName()
似乎为可执行文件提供了有效的 QFileInfo
,但它实际上并没有完全正常工作。
使用 toLocalFile()
而不是 fileName()
解决了问题。