C++ 获取上一级文件夹路径
我们可能会经常遇到文件所在文件夹路径的问题,虽然各大平台也有提供方便快捷的API来实现,但是如果脱离平台本身,或者想实现跨平台的话,可以考虑用纯C++的代码来实现这一需求
示例代码
#include <string>
#include <iostream>
using std::wstring;//
wstring GetParentFolderPath(wstring path)
{size_t colon = path.find(L':');std::wstring vol = path.substr(0, colon + 1);if (colon != path.npos) {path = path.substr(colon + 1);}size_t last = path.rfind(L'\\');if (last == path.npos) {path.clear();}else if (last == 0) {path.resize(1);}else {// 去除末尾的斜杠 if (!path.empty() && (last == path.size() - 1)){path.resize(path.size() - 1);last = path.rfind(L'\\');}if (last == path.npos) {path.clear();}else {path.resize(last + 1);}}if (!vol.empty() && path.empty()) {return vol + L"\\";}else {return vol + path;}
}int main()
{std::wstring wsz0 = GetParentFolderPath(L"C:\\Program Files (x86)\\QQ\\log");std::wstring wsz1 = GetParentFolderPath(L"C:\\Program Files (x86)\\QQ");std::wstring wsz2 = GetParentFolderPath(L"C:\\Program Files (x86)");std::wstring wsz3 = GetParentFolderPath(L"C:");std::wcout << "wsz0: " << wsz0.c_str() << std::endl;std::wcout << "wsz1: " << wsz1.c_str() << std::endl;std::wcout << "wsz2: " << wsz2.c_str() << std::endl;std::wcout << "wsz3: " << wsz3.c_str() << std::endl;system("pause");return 0;
}
输出结果
wsz0: C:\Program Files (x86)\QQ
wsz1: C:\Program Files (x86)
wsz2: C:
wsz3: C:\
相关文章:
C++ 获取上一级文件夹路径
我们可能会经常遇到文件所在文件夹路径的问题,虽然各大平台也有提供方便快捷的API来实现,但是如果脱离平台本身,或者想实现跨平台的话,可以考虑用纯C的代码来实现这一需求 示例代码 #include <string> #include <ios…...
Apache Pulsar的分布式集群模式构建
1. 准备环境 6台带jdk8的Linux服务器(CentOS7为例) ip分别为: 主机名IP地址zookeeper1192.168.8.101zookeeper2192.168.8.102zookeeper3192.168.8.103pulsar1192.168.8.108pulsar2192.168.8.109pulsar3192.168.8.110 2. 下载Pulsar最新安…...
第三百八十六回
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口,只不过窗口的内容固定显示…...
Java中介者模式剖析及使用场景
中介者模式 一、介绍二、智能家居系统项目实现三、总结1.优点2.缺点3.使用经验4.Spring框架类似使用思想 一、介绍 介者模式是一种行为型设计模式,它允许对象之间通过一个中介者对象进行通信,而不是直接相互引用。将多对多的关系转化为一对多的关系&…...
ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效
随着Open AI公司推出的Sora文生视频模型惊艳亮相互联网,AI语音克隆创企ElevenLabs又为Sora的演示视频生成了配音,所有的音效均由AI创造,与视频内容完美融合。 ElevenLabs的语音克隆技术能够从一分钟的音频样本中创建逼真的声音。为了实现这一…...
Go语言基础
Go的数据类型定义 //运行第一个程序package main func main(){print("Hello World") }在GO语言中,一个程序只能有一个main包,对应只能有一个main方法,若无法满足这个条件,编译时将会报错。注释方式与PHP相同 import的使…...
IOS覆盖率报告info文件解读
一,IOS覆盖率报告的生成 在做前端精准测试的时候,对于iOS端,通常会做如下操作: (1)合并覆盖率数据 如下操作: xcrun llvm-profdata merge coverage_file1657885040728.profraw coverage_fil…...
爬虫实战——scrapy框架爬取多张图片
scrapy框架的基本使用,请参考我的另一篇文章:scrapy框架的基本使用 起始爬取的网页如下: 点击每张图片,可以进入图片的详情页,如下: 代码实现: 项目文件结构如下 img_download.py文件代码 im…...
LLVM TableGen 系统学习笔记
Basic TableGen 系统可以帮助记录领域特定的信息。它也可以认为是一种小型的编译系统。 TableGen 责负分析文件, 分析结果交给领域特定的后端进行处理。 重要的概念 records 一个 record 有一个独立的名称,一系列值和一系列父类。 它保存了特定领域…...
基于stm32的流水灯设计
1基于stm32的流水灯设计[proteus仿真] 速度检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的自行车测速系统设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,…...
kotlin图片合成和压缩
kotlin图片合成和压缩 之前的方法是继承AsyncTask 在doInBackground 里面去做压缩的操作,然后用 publishProgress 切到主线程里面更新 新方法是在协程里的去做 class ImageService {private fun getSumWidths(bitmaps: ArrayList<Bitmap>): Int {var sumWid…...
Java学习笔记004——接口概念理解及意义
一个类中有抽象方法,则必须声明为abstract(做为抽象类),抽象类不能实例化。子类继承抽象类,必须对所有的抽象方法重写,否则依然有抽象方法,还是抽象的,无法实例化。故抽象类常做为基…...
MT笔试题
前言 某团硬件工程师的笔试题,个人感觉题目的价值还是很高的,分为选择题和编程题,选择题考的是嵌入式基础知识,编程题是两道算法题,一道为简单难度,一道为中等难度 目录 前言选择题编程题 选择题 C语言中变…...
50道SQL面试题
50道SQL面试题 有需要互关的小伙伴,关注一下,有关必回关,争取今年认证早日拿到博客专家 环境 -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS teacher; CREATE TABLE teacher (t_id varchar(20) …...
2024蓝桥杯每日一题(双指针)
一、第一题:牛的学术圈 解题思路:双指针贪心 仔细思考可以知道,写一篇综述最多在原来的H指数的基础上1,所以基本方法可以是先求出原始的H指数,然后分类讨论怎么样提升H指数。 【Python程序代码】 n,l map(int,…...
Android 开发过程中常见的内存泄漏场景分析
场景1 Static变量存储上下文环境Context public class ClassName {// 定义1个静态变量private static Context mContext;//... // 引用的是Activity的contextmContext context; // 当Activity需销毁时,由于mContext 静态 & 生命周期 应用程序的生命周期&…...
Codeforces-1935E:Distance Learning Courses in MAC(思维)
E. Distance Learning Courses in MAC time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The New Year has arrived in the Master’s Assistance Center, which means it’s time to introduce a new feature…...
ZooKeeper和Diamond有什么不同
本文主要是讨论下两个类似产品:ZooKeeper和Diamond在配置管理这个应用场景上的异同点。 Diamond,顾名思义,寄寓了开发人员对产品稳定性的厚望,希望它像钻石一样,提供稳定的配置访问。Diamond是淘宝网Java中间件团队的核…...
三、N元语法(N-gram)
为了弥补 One-Hot 独热编码的维度灾难和语义鸿沟以及 BOW 词袋模型丢失词序信息和稀疏性这些缺陷,将词表示成一个低维的实数向量,且相似的词的向量表示是相近的,可以用向量之间的距离来衡量相似度。 N-gram 统计语言模型是用来计算句子概率的…...
QML 3D入门知识路线
目前使用的版本 v5.14.0 模块导入 使用QML 3D时需要 import Qt3D.Core 2.14 核心模块类 V6以上的版本已经发布,所以有很多module会发生变化,主要有核心module、输入、逻辑、渲染、动画和扩展module,以及2D/3D场景模块 类名 能…...
Python 多线程爬虫性能调优方案
Python多线程爬虫性能调优方案 在当今大数据时代,网络爬虫已成为数据采集的重要工具。面对海量数据和高频请求,单线程爬虫往往效率低下,难以满足需求。Python多线程爬虫因其并发特性,能够显著提升爬取效率,但若未合理…...
我实测过的9个AI Agent Skills(用过就再也离不开)
智能体技能正成为打造实用AI智能体的全新黄金标准,但没人告诉你这个生态系统究竟有多混乱。找到安全又好用的技能就像碰运气;大多数仓库看起来惊艳无比……可一上手就原形毕露。我深有体会,因为我翻遍了几十个仓库。我一头扎进这个领域&#…...
忍者像素绘卷开源可部署:支持国产操作系统(OpenEuler)的兼容方案
忍者像素绘卷开源可部署:支持国产操作系统(OpenEuler)的兼容方案 1. 项目概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,专为像素艺术创作而设计。这款工具将传统漫画创作与现代AI技术相结合,创…...
GLDAS数据变量单位速查与避坑指南:别再搞混土壤湿度和蒸散发单位了!
GLDAS数据变量单位解析与科研避坑实战指南 科研工作中最令人沮丧的瞬间之一,莫过于花费数周时间分析数据后,发现因为单位换算错误导致所有结论需要推倒重来。GLDAS数据集作为全球陆地水文研究的重要数据源,其NOAH、VIC等模型输出的土壤湿度、…...
完整指南:5分钟掌握ImStudio实时GUI布局设计工具
完整指南:5分钟掌握ImStudio实时GUI布局设计工具 【免费下载链接】ImStudio GUI layout designer for Dear ImGui 项目地址: https://gitcode.com/gh_mirrors/im/ImStudio ImStudio是一款专为Dear ImGui开发者设计的实时GUI布局设计工具,它通过可…...
别再烧芯片了!手把手教你搞懂STM32 GPIO的过压保护二极管(附实测数据)
STM32 GPIO保护二极管实战指南:从原理到实测的完整避坑手册 刚拿到STM32开发板的新手们,总会遇到这样的灵魂拷问:为什么我的芯片又冒烟了?上周实验室里,小王同学用5V的超声波模块直接接到STM32的GPIO上,结果…...
AIAgent感知模块不是“加传感器就行”!——基于237个真实项目数据的感知架构成熟度评估模型(含自测打分表)
第一章:AIAgent感知模块不是“加传感器就行”!——基于237个真实项目数据的感知架构成熟度评估模型(含自测打分表) 2026奇点智能技术大会(https://ml-summit.org) 在237个跨行业AI Agent落地项目中,高达68%的感知模块…...
SwitchHosts实战指南:图形化界面下的Hosts文件高效管理技巧
1. 为什么你需要SwitchHosts来管理Hosts文件 每次调试网站或者切换测试环境时,手动修改Hosts文件就像用螺丝刀修电脑——既原始又低效。我见过不少同事因为手滑输错一个IP地址,导致整个下午都在排查"为什么网站打不开"。更糟的是,当…...
C3D行为识别实战:UCF101视频数据预处理与帧提取全流程
1. 认识UCF101数据集与行为识别基础 第一次接触视频行为识别时,我对着UCF101数据集发了半天呆——这堆视频文件该怎么变成模型能理解的格式?后来才发现,预处理才是决定模型效果的关键第一步。UCF101作为行为识别领域的"MNIST"&…...
当CRNN遇上CTC:揭秘文本识别中的序列建模魔法(PyTorch版)
CRNNCTC:从算法原理到PyTorch实战的文本识别全解析 在计算机视觉领域,文本识别一直是一个极具挑战性的任务。不同于简单的物体识别,文本识别需要模型同时具备图像特征提取和序列建模的能力。本文将深入探讨CRNN(卷积循环神经网络&…...
