当前位置: 首页 > article >正文

Qt自动打开文件夹并高亮文件

在Qt中,如果你想要打开一个文件夹并在文件管理器中高亮显示(选中)某个文件,你可以使用以下方法:

对于Windows系统,你可以使用QProcess来启动explorer命令,并带上/select,参数来高亮显示文件。以下是一个函数示例,它接受文件的完整路径作为参数,并在资源管理器中打开该文件所在的文件夹同时选中该文件:

cpp
#include <QProcess>
#include <QFileInfo>

void openFolderAndHighlightFile(const QString &filePath) {
    QFileInfo fileInfo(filePath);
    QString directoryPath = fileInfo.absoluteDir().absolutePath();
    QString fileName = fileInfo.fileName();
    //这一步很重要,否则无法高亮选中文件
    QString param = QDir::toNativeSeparators(directoryPath + "/" + fileName);
    QProcess::startDetached("explorer", QStringList() << "/select," << param);
}

当你调用这个函数并传递一个文件路径时,它会打开Windows资源管理器,并将用户直接定位到该文件,文件会被高亮显示。

对于macOS和Linux系统,通常没有直接的命令可以在文件管理器中高亮显示文件,但你可以使用QDesktopServices来打开文件夹:

cpp
#include <QDesktopServices>
#include <QUrl>

void openFolder(const QString &folderPath) {
    QUrl folderUrl = QUrl::fromLocalFile(folderPath);
    QDesktopServices::openUrl(folderUrl);
}

这个函数会打开文件夹,但不会高亮显示特定的文件。在macOS上,你可以使用open命令和-R参数来打开文件夹并选中文件:

cpp
#include <QProcess>

void openFolderAndSelectFileOnMac(const QString &filePath) {
    QProcess::startDetached("open", QStringList() << "-R" << filePath);
}


http://www.kler.cn/news/303491.html

相关文章:

  • CI/CD持续集成和持续部署以及相关软件的使用
  • Docker日志管理之Filebeat+ELK日志管理
  • (不用互三)解密AI创作:提升Prompt提示词的提问技巧
  • VS Code 中提升编程效率的功能及使用方法
  • 大模型-模型架构-详细配置
  • 雷电9模拟器安装magisk和lsposed
  • 负载均衡:从理论到实践 ---day04
  • http连接与ssh连接的区别
  • 华为HCIA、HCIP和HCIE认证考试明细
  • 实现一个点缓慢到达另一个点
  • 【网络】传输层协议UDP
  • Kubernetes 集群管理
  • 音视频入门基础:AAC专题(1)——AAC官方文档下载
  • 【JVM】判断对象能否回收的两种方法:引用计数算法,可达性分析算法
  • 神经网络多层感知器异或问题求解-学习篇
  • mysql数据库如何开启binlog日志
  • cesium.js 入门到精通(7)
  • 修改centos7系统语言en_US.UTF-8为中文zh_CN.UTF-8
  • 高防服务器的优势与劣势分析
  • 【LLM:Fan】
  • 踩坑记:Poco库,MySql,解析大文本的bug
  • 递归、排序、二分查找(C语言实现)
  • mybatis与concat实现模糊查询、mybatis中模糊查询concat传入参数为空时的解决方法
  • nacos安装使用调优及面试题分享
  • Apple发布会都有哪些亮点?如何在苹果手机和电脑上录制屏幕?
  • MATLAB默认工作路径修改
  • 串口通信数据包介绍和包结构定义实例
  • 【Echarts】vue3打开echarts的正确方式
  • real, dimension(3) :: rho1 和 real :: rho1(3) 的区别
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(1)