QFileInfo :: isExecutable()为“.exe”文件返回false

时间:2016-04-16 13:20:53

标签: c++ qt drag-and-drop qfileinfo

我正在尝试允许将.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()函数为.exe文件返回false。

我拥有该文件的权限,并且我已验证info的文件路径是否正确指向可执行文件。

this question的答案使得任何带有.exe扩展名的文件都应该返回true,那么为什么QFileInfo::isExecutable()会返回false?

1 个答案:

答案 0 :(得分:1)

即使QFileInfo info(e->mimeData()->urls().first().fileName()似乎为可执行文件提供了有效的QFileInfo,但它实际上并没有完全正常工作。

使用toLocalFile()代替fileName()解决了问题。