Qt复制文件到C盘目录超级管理员权限和避免VirtualStore功能

news2024/11/18 22:47:00

本以为复制文件是个很简单的事情,没想到居然需要超级管理员权限。

网上一搜有好多教程,例如这个:

给Qt程序添加管理员权限总结(一定有你没见过的方式)_qt管理员权限_百里杨的博客-CSDN博客当我们写了一个Qt程序,程序会在C盘某些目录下创建文件时,会发现代码没有问题,但是就是创建失败。而当我们对程序右键,以管理员权限运行时,又可以正常创建文件。此时,说明我们的程序默认不具备管理员权限,故而无法对某些目录进行写入。根据我们的编译器不同,有如下2种情况。一、使用MSVC编译器在pro文件中,添加如下一行:QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"重新编译之后,程序https://blog.csdn.net/zyhse/article/details/108166181然后配上复制文件的代码就ok了:

// 获取程序路径和需要复制的文件路径
QString programPath = QCoreApplication::applicationDirPath();
QString sourceFilePath = programPath+"/file.dat"; // 源文件路径
QString targetFilePath = "C:/file.dat"; // 目标文件路径

qDebug() << sourceFilePath;

QFile targetFile(targetFilePath);
if (!targetFile.exists()) {

    // 复制文件
    QFile sourceFile(sourceFilePath);
    if (sourceFile.exists()) {
        if (!QFile::copy(sourceFilePath, targetFilePath)) {
            qDebug() << "Failed to copy file.";
        }else
        {
            qDebug() << "Copy file success!";
        }
    } else {
        qDebug() << "Source file does not exist.";
    }

}else
{
    qDebug() << "File exist.";
}

上面获取管理员权限的方式好是好,可是总感觉麻烦一些。

你或许没听说过这个VirtualStore功能

VirtualStore是Windows操作系统中的一个虚拟文件夹,用于存储没有管理员权限的用户在受保护的目录中所做的更改。当用户尝试在受保护的目录中进行更改时,由于缺乏管理员权限,操作系统会将更改保存到VirtualStore文件夹中,而不是直接保存到原始目录中。

VirtualStore通常用于存储应用程序和用户数据的配置文件。在Windows Vista和更高版本的操作系统中,用户在Program Files和Windows目录下的文件夹中进行更改时,操作系统会将这些更改保存到VirtualStore文件夹中。这是因为这些目录是受保护的,只有管理员权限才能对其进行更改。

尽管VirtualStore可以帮助用户在没有管理员权限的情况下更改受保护的目录,但它也可能导致一些问题。例如,用户可能会忘记VirtualStore中的更改,导致应用程序无法正常工作。因此,开发人员需要了解VirtualStore的存在,并确保他们的应用程序能够正确处理VirtualStore中的数据。

为了解决这个问题,开发人员可以使用Qt提供的QStandardPaths类来获取应用程序的标准路径,以确保它们可以在任何Windows操作系统上正常工作。QStandardPaths类提供了许多静态函数来获取不同类型的标准路径,例如应用程序的配置目录、数据目录、缓存目录等。这些函数将自动考虑到VirtualStore的存在,并返回正确的路径。

除了使用QStandardPaths类之外,开发人员还可以通过在应用程序中使用程序数据目录而不是安装目录来避免使用VirtualStore。程序数据目录是指应用程序运行时保存数据和配置文件的目录。通过将这些文件保存在程序数据目录中,应用程序可以避免使用VirtualStore,并且可以在不同的Windows操作系统上正常工作。

对照图:

qt官方在线帮助文档:https://doc.qt.io/qt-5/qstandardpaths.html 

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

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

相关文章

联想台式机第一次激活提示“请连接Internet进行设置”

一、问题描述 近期给客户新采购了若干台Think系列的联想服务器&#xff08;台式机&#xff09;&#xff0c;在开机初始化时&#xff0c;选择了语言、键盘模式&#xff0c;然后点击“下一步”&#xff0c;页面提示“请连接Internet进行设置”。 此时右下角的“下一步”是灰色的…

民宿小程序源码搭建 酒店预订小程序源码 完整前后端+安装搭建教程

分享一个民宿小程序源码搭建酒店预订小程序源码&#xff0c;含完整代码程序包和详细的安装搭建教程。 系统为多用户&#xff0c;可以多商家入驻收入驻费用运营&#xff0c;可自用搭建民宿酒店小程序&#xff0c;在线订房管理。 小程序源码下载地址&#xff1a;春哥技术博客获取…

深耕全屋智能场景 鸿雁发布两款iHousePad智慧交互屏新品

作为全屋智能中最核心的应用&#xff0c;智慧屏一直是入口级的产品&#xff0c;在全屋智能场景中起着重要的作用&#xff0c;智慧屏体验的好坏直接关系到全屋智能的交互体验和落地应用。 作为全屋智能赛道早期布局者和重要推动者&#xff0c;鸿雁一直在推动传统开关面板到智能…

【第六章:总线】

目录 知识框架No.0 引言No.1 总线概述一、基本概念二、总线的分类及经典结构1、按照数据传输格式2、按照总线功能(连接的部件)3、按照时序控制方式 三、性能指标1.总线的传输周期(总线周期)2.总线时钟周期3.总线的工作频率4.总线的时钟频率5.总线宽度6.总线带宽7.总线复用8.信号…

spring-data 一统江湖,玩转多种数据源

1、起因 因为要在项目中同时访问redis&#xff0c;mongo和mysql三种数据库&#xff0c;而且因为偏向spring-data&#xff0c;所以都使用了spring-data 在使用的过程中如果不做配置发现会有冲突&#xff0c;这篇文章也是解决这个问题&#xff0c;避免以后遇到同样的问题不知所…

【SAM系列】CAN SAM COUNT ANYTHING? AN EMPIRICAL STUDY ON SAM COUNTING

论文链接&#xff1a;https://arxiv.org/abs/2304.10817 代码链接&#xff1a;https://github.com/vision-intelligence-and-robots-group/count-anything 目的 探索SAM在few-shot setting的object counting的能力。 结论 它目前落后于最先进的few-shot object counting方法…

出门没带本子记的单词|10:20~10:40

susceptible adj 易受影响的 unify v 统一 auditory adj 听觉的 / ˈɔːdətɔːri / combat v 与...搏斗、防止 comfort n 舒适 constrain v 约束、迫使 fringe …

Swift 周报 第二十九期

文章目录 前言新闻和社区担心泄密&#xff01;外媒&#xff1a;苹果公司限制员工使用ChatGPT苹果公司大幅削减其MR头显销售预期&#xff0c;不足百万台 提案通过的提案正在审查的提案 Swift 论坛1、讨论 SwiftUI 图表、超大数据集和图表叠加2、讨论带有线程安全属性包装器的可发…

【SpringBoot知识点预备】| Xml 和 JavaConfig

目录 一&#xff1a;Xml 和 JavaConfig 1. JavaConfig 2. ImportResource注解 3. PropertyResource注解 一&#xff1a;Xml 和 JavaConfig 1. JavaConfig &#xff08;1&#xff09;为什么要使用 Spring Boot&#xff1f; ①因为Spring、SpringMVC 的使用需要大量的配置文…

【Java EE】Springboot

Springboot Springboot 核心功能SpringBoot的相关好处 Springboot 核心功能 1、 可独立运行的Spring项目&#xff1a;Spring Boot可以以jar包的形式独立运行。 2、 内嵌的Servlet容器&#xff1a;Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow&#xff0c;无须以war包形…

python cuda torch验证是否成功安装,版本是否匹配

1 、首先查看自己的显卡型号 根据nvcc-smi查到自己的显卡型号,如下图所示。 本人的电脑显卡型号为:GeForce GT 730 2、查看显卡算力 可以通过以下链接查找 http://www.5ityx.com/cate100/155907.html 可以看到我的显卡算力是3.5 备注:你的显卡计算力必须保证在3.5以上。如…

Kali-linux破解纯文本密码工具mimikatz

mimikatz是一款强大的系统密码破解获取工具。该工具有段时间是作为一个独立程序运行。现在已被添加到Metasploit框架中&#xff0c;并作为一个可加载的Meterpreter模块。当成功的获取到一个远程会话时&#xff0c;使用mimikatz工具可以很快的恢复密码。本节将介绍使用mimikatz工…

使用Python获取公众号下所有的文章

我比较喜欢看公众号&#xff0c;有时遇到一个感兴趣的公众号时&#xff0c;都会感觉相逢恨晚&#xff0c;想一口气看完所有历史文章。本文主要介绍了使用Python获取公众号下所有的文章&#xff0c;感兴趣的可以了解一下 导出公众号所有文章 随着互联网的不断发展&#xff0c;网…

【源码篇】基于SpringBoot+Jsp的日记记录系统

1、项目介绍 基于SpringBootJsp的日记记录系统所有功能均对用户开放&#xff0c;只有用户角色。 是一款面向用户的系统&#xff0c;用户可以自己注册账号进行登录&#xff0c;管理自己的信息(个人中心)、自由添加日记分类、发布日记来记录自己所遇到有趣的人和事、也可以发表…

BiFormer 实验记录

代码来自文中地址 目录 一、前向传播过程 1、Path Embedding 2、BiFormer Block BRA模块 网络结构 一、前向传播过程 1、Path Embedding 见网络结构部分&#xff0c;4倍下采样 2、BiFormer Block 对应 x x self.pos_embed(x) 对应 x x self.drop_path(self.attn(…

【5.22】七、移动App测试

目录 7.1 移动App测试概述 1. 移动App特性 2. 移动App测试与传统软件测试的区别 7.2 移动App测试要点 7.2.1 UI测试 7.2.2 功能测试 7.2.3 专项测试 7.2.4 性能测试 7.3 移动App测试流程 第三方测试平台 7.4 移动App测试工具 7.1 移动App测试概述 移动App&#xff…

就业内推 | 应届生专场,有华为、思科认证优先,六险一金

01 金科 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;职责描述&#xff1a; 1、为银行、企业客户提供技术服务&#xff08;包括驻场支持和现场技术支持&#xff09;&#xff1b; 2、驻客户现场配合客户完成思科、华三、华为主流网络设备的配置、管理&#xff1…

基于C++的类UNIX文件系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 一、题目要求 使用一个普通的大文件&#xff08;如 c:\myDisk.img &#xff0c;称之为一级文件&#xff09;模拟 UNIX V6的一个文件卷&#xff0c;一个文件卷实际上就是一张逻辑磁盘&#xff0c;磁盘中存储的信息以块为单位。…

小航助学2023年3月GESP_C++一级试卷(含题库答题软件账号)

GESP在线模拟训练系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级&#xff08;2019年3月&#xff09;在线答题_程序猿下山的博客-CSDN博客_小航答题助手 答案:B 第1题以下不属于计算机输入设备的有&#xff08; &#xff09;。 A、键盘B、音箱C、鼠标D、传感器 …

如何使用Python和wxPython构建一个HTML Title提取工具

以下代码可以用于以下场景&#xff1a; 在Web开发中&#xff0c;获取网页中的Title内容&#xff0c;以用于页面SEO。在数据挖掘和分析中&#xff0c;获取包含Title信息的HTML页面&#xff0c;以进行进一步的文本处理和分析。在一些需要从HTML源代码中获取元数据的应用中&#…