QT实现用本地资源管理器来打开文件夹

QString path="文件夹路径";QDesktopServices::openUrl(QUrl("file:"+path, QUrl::TolerantMode));

在windows中QT编程,使用资源管理器来打开指定本地文件夹的方法:

第一种:使用Qprocess命令(相当于在cmd命令管理窗口执行命令)

QString strLogPath = "start " + "你的文件夹所在目录";
QProcess process(this);
process.setProgram("cmd");//设置命令形式
QStringList argument;
argument << "/c" << strLogPath;//在cmd命令中,/c代表“执行完命令后返回”。它表示在执行完命令后,程序将返回到调用cmd的环境中。使用/c参数可以避免程序在执行过长命令时处于等待状态而呈现假死的现象。
process.setArguments(argument);
process.start();
process.waitForStarted(); //等待程序启动
process.waitForFinished();//等待程序关闭
  1. QString strLogPath = "start " + "你的文件夹所在目录";:这行代码创建了一个QString对象,该对象包含一个字符串,这个字符串是"start "(一个英文单词"start"后面跟着一个空格)和一个目录路径(例如:"你的文件夹所在目录")。这个路径应该是你想在其中启动新进程的目录。
  2. QProcess process(this);:这行代码创建了一个QProcess对象。QProcess类用于在Qt应用程序中启动外部进程。这里的this是指当前的Qt对象,通常用于将父窗口与子窗口关联起来。
  3. process.setProgram("cmd");:这行代码设置了要执行的程序。这里,它设置为"cmd",即Windows的命令行解释器。
  4. QStringList argument;:这行代码创建了一个QStringList对象,该对象将用于存储命令行参数。
  5. argument << "/c" << strLogPath;:这行代码向QStringList对象中添加了两个参数。"/c"是一个cmd命令行的选项,意思是执行完命令后返回。strLogPath是上面定义的包含文件夹路径的字符串。
  6. process.setArguments(argument);:这行代码将上面定义的参数列表设置到QProcess对象中。
  7. process.start();:这行代码启动了进程。
  8. process.waitForStarted();:这行代码会阻塞当前线程,直到进程开始运行。
  9. process.waitForFinished();:这行代码会阻塞当前线程,直到进程完成执行。

总结:这段代码会启动一个新的cmd窗口,并执行"/c"命令(执行完就返回),然后执行"start " + 你的文件夹所在目录命令(在cmd中打开指定目录)。然后程序会等待直到这个cmd进程执行完毕。

第二种方法:

使用QT的QDesktopServices的方法去实现,注意里面的这个"file"一定要保留,不然会报下面这个错误:

ShellExecute  路径  failed (error 2).

QString path="文件夹路径";
QDesktopServices::openUrl(QUrl("file:"+path, QUrl::TolerantMode));

使用 QDesktopServices::openUrl() 方法打开一个文件或URL。在这个方法中,需要传递一个 QUrl 对象。一种不同的方式是直接使用 QUrl 构造一个URL,然后传递给 openUrl() 方法。

*********************************QDesktopServices的补充***********************************************

DesktopServices 类提供用于访问常见桌面服务的方法。

许多桌面环境提供的服务可供应用程序用来执行常见任务,例如打开网页,其方式既一致又考虑了用户的应用程序首选项。

此类包含为这些服务提供简单接口的函数,这些接口指示它们是成功还是失败。

openurl() 函数用于打开位于外部应用程序中任意 URL 的文件。对于与本地申请系统上的资源相对应的URL(URL方案为“文件”),将使用合适的应用程序来打开文件;否则,将使用 Web 浏览器来获取和显示文件。

用户的桌面设置控制是打开某些可执行文件类型进行浏览,还是改为执行这些文件类型。某些桌面环境配置为阻止用户执行从非本地 URL 获取的文件,或者在执行之前请求用户的许可。

在用户桌面环境的相应 Web 浏览器中打开给定的,如果成功则返回;否则返回 。truefalse

如果 URL 是对本地文件的引用(即 URL 方案是“文件”),则将使用合适的应用程序而不是 Web 浏览器打开它。

以下示例在 Windows 文件系统上打开一个文件,该文件位于包含空格的路径上:

QDesktopServices::openUrl(QUrl("file:///C:/Program Files", QUrl::TolerantMode));

如果指定了 URL,则用户的电子邮件客户端将用于打开包含 URL 中指定选项的 composer 窗口,类似于 Web 浏览器处理链接的方式。mailtomailto

例如,以下 URL 包含收件人 recipient (), subject (), 和body ():user@foo.comTestJust a test

mailto:user@foo.com?subject=Test&body=Just a test

第三种方法:

除了 QDesktopServices::openUrl() 和使用 QProcess 启动外部程序之外,还可以使用其他一些方法来实现相同的功能,例如使用 QDir 类来访问文件系统并打开文件或目录。下面是一个使用 QDir 的例子:

#include <QDir>  QString path = "文件夹路径";  
QDir dir(path);  
if (dir.exists()) {  dir.open();  
} else {  // 处理路径不存在的情况  
}

这个例子中,我们首先创建一个 QDir 对象,并传入要访问的路径。然后,我们使用 exists() 方法检查路径是否存在,如果存在,就使用 open() 方法打开该目录。这样,用户就可以在文件管理器中直接打开指定的目录。

#AI诈骗进入高发期,普通人该如何防范?#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【面试经典150 | 链表】反转链表 II

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;迭代 其他语言python3 写在最后 Tag 【头插法】【迭代】【链表】 题目来源 92. 反转链表 II 题目解读 返回部分链表。 解题思路 方法一&#xff1a;迭代 我们首先需要找到开始反转链表的前一个节点&#xff0c;为此…

React 你还在用 Redux 吗?更简化的状态管理工具(Recoil)

以往传统的 Redux 状态管理工具使用起来代码太过于复杂。 你需要通过纯函数触发 action 再去修改 data 中定义的数据&#xff0c;而且要通过接口请求数据还需要借助 redux - think 这个中间件才能完成。。。 更加方便使用的工具&#xff1a;Recoil ~ 由 facebook 推出契合 R…

【机器学习可解释性】5.SHAP值的高级使用

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP值的高级使用 正文 汇总SHAP值以获得更详细的模型解释 总体回顾 我们从学习排列重要性和部分依赖图开始&#xff0c;以显示学习后的模型的内容。 然后我们学习了SHAP值来分解单个预测的组成部…

CSS3背景样式

在CSS 2.1中&#xff0c;background属性的功能还无法满足设计的需求&#xff0c;为了方便设计师更灵活地设计需要的网页效果&#xff0c;CSS3在原有background基础上新增了一些功能属性&#xff0c;可以在同一个对象内叠加多个背景图像&#xff0c;可以改变背景图像的大小尺寸&…

[ubuntu系统下的文本编辑器nano,vim,gedit,文件使用,以及版本更新问题]

文本编辑器概要 在Ubuntu系统下&#xff0c;有许多文本编辑器可供选择&#xff0c;每个编辑器都有其独特的特性和用途。以下是一些常见的文本编辑器&#xff1a; Gedit&#xff1a; 这是Ubuntu默认的文本编辑器&#xff0c;它简单易用&#xff0c;适合基本的文本编辑任务。 安…

前端基础---跳转相关的功能

后端给链接地址并且给token进行跳转 如果点击有key4&#xff0c;说明要跳转到相应的页面 auth是通过后端获取的地址&#xff0c; jdk是后端获取的相应的token&#xff0c; 然后进行拼接&#xff0c;进行window.open&#xff08;&#xff09;进行跳转 if (key 4) {var testUrl …

基于RFID技术的优化医药供应链管理解决方案

一、社会背景和挑战 随着全球假药问题的严重性日益凸显&#xff0c;医疗产品的追溯和管理变得越来越重要。据世界卫生组织报告&#xff0c;全球假药比例已超过10%&#xff0c;而中国每年至少有20万人死于假药和不当用药。在国际上&#xff0c;医疗产品的追溯体系已成为监管机构…

MLF - 麻辣粉

MLF全称中期借贷便利&#xff08;Medium-term lending Facility&#xff09;,理解为央行向商业银行、政策银行发放的贷款&#xff0c;但需要符合一定要求才可向央行申请。银行通过MLF向央行借款的时候&#xff0c;需要提供担保品。一般为国债、央行票据、政策性金融债、地方债、…

数据库的用户管理

一、创建用户&#xff1a;create user 二、赋予用户权限&#xff1a;grant&#xff08;终端执行&#xff09; 三、删除用户权限&#xff1a;revoke&#xff08;在终端操作&#xff09; 四、用户的重命名&#xff1a;rename 五、删除用户&#xff1a;drop 六、修改用户密码 1、…

linux目录与文件管理

目录与路径 关于执行文件路径的变量&#xff1a;$PATH ls完整文件名为&#xff1a;/bin/ls 在任何文件夹下输入ls命令可以显示出一些信息而不是找不到命令&#xff0c;这就是因为环境变量PATH所致。在执行命令时&#xff0c;系统会依照PATH的设置去每个PATH定义的目录下查找文…

前端环境的安装 Node npm yarn

一 node npm 1.下载NodeJS安装包 下载地址&#xff1a;Download | Node.js 2.开始安装 打开安装包后&#xff0c;一直Next即可。当然&#xff0c;建议还是修改一下安装位置&#xff0c;NodeJS默认安装位置为 C:\Program Files 3.验证是否安装成功 打开DOS命令界面&#…

MINIO 对象存储服务

MINIO 官网下载地址&#xff1a; 注&#xff1a;需要下载 MINIO SERVER&#xff08;服务端&#xff09; 和 MINIO CLIENT&#xff08;客户端&#xff09;两个文件 WINDOWS版本下载地址&#xff1a;https://min.io/download#/windows LINUX版本下载地址&#xff1a;https://mi…

Python web自动化测试 —— 文件上传

​文件上传三种方式&#xff1a; &#xff08;一&#xff09;查看元素标签&#xff0c;如果是input&#xff0c;则可以参照文本框输入的形式进行文件上传 方法&#xff1a;和用户输入是一样的&#xff0c;使用send_keys 步骤&#xff1a;1、找到定位元素&#xff0c;2&#…

【大数据基础平台】星环TDH社区开发版单机部署

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#…

Vue之CSS基础

CSS&#xff1a;层叠样式表 1、选择器 从模板template中选择某元素进行样式设置 需要注意的是作用域到底是当前模板还是整个html文档 1.1 基础(单一)选择器 标签、类、 id、通配符 标签、直接使用标签名&#xff0c;比如div,span… 优点&#xff1a;全选 模板中的名{。。。}…

反射率检测仪如何检测后视镜

后视镜反射率检测是评估后视镜质量的重要步骤&#xff0c;可以反映后视镜的反射效果是否满足设计要求。一般来说&#xff0c;后视镜的反射率越高&#xff0c;驾驶员观察车后的道路状况就越清晰&#xff0c;从而能够更好地判断与后方车辆的距离和速度差。 后视镜反射率检测的原理…

你被骗了吗?别拿低价诱骗机器视觉小白,4000元机器视觉系统怎么来的?机器视觉工程师自己组装一个2000元不到,还带深度学习

淘宝闲鱼&#xff0c;大家搜搜铺价格&#xff0c;特别是机器视觉小白。 机架&#xff1a;&#xff08;新的&#xff09;200元以下。(看需求&#xff0c;自己简单打光&#xff0c;买个50元的。如果复杂&#xff0c;就拿给供应商免费打光) 相机&#xff0c;镜头&#xff1a;&am…

Spring MVC的常用注解(设置响应篇)

目录 1.返回静态页面 2.返回数据 3.返回HTML代码片段 4.返回json 5.设置状态码 6.设置Header &#xff08;1&#xff09;.设置 Content-Type &#xff08;2&#xff09;.设置其他Header 推荐先看前篇博客Spring MVC的常用注解&#xff08;接收请求数据篇&#xff09; 接收…

【数据结构】时间复杂度与空间复杂度

算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度&#xff1a; 主要衡量一个算法的运行快慢 空间复杂度&#xff1a;…

C#学习相关系列之多线程---ConfigureAwait的用法

一、ConfigureAwait的作用 ConfigureAwait方法是Task类中的一个实例方法&#xff0c;它用于配置任务的运行上下文。运行上下文指的是任务在执行期间所处的环境&#xff0c;包括线程、同步上下文等。ConfigureAwait方法接受一个布尔值参数&#xff0c;用于决定是否捕获上下文。当…