获取程序路径并去除程序名

AutosarMCAL开发——基于TC3x系列时钟系统浅析 本文为博主个人学习总结记录,如有不正,欢迎指正。 阅读详情

问题1:如何确定应用程序的路径?

问题2:如何去除程序目录中最后的文件名?(如去除c:\Debug\test.exe中的\test.exe,值留下c:\Debug)


1.使用GetModuleFileName 获得应用程序的路径,然后去掉可执行件名。
Example: 

	TCHAR exeFullPath[MAX_PATH]; // MAX_PATH 在 API 中定义了吧,好象是 128
	GetModuleFileName(NULL,exeFullPath,MAX_PATH)

2.先定位到字符串的结束标志‘\0’,再循环从后往前找‘\\’,

一旦找到替换当前位置的字符为‘\0’跳出循环。


例子:

#include <windows.h>
#include <iostream>

using namespace std;

bool CutLastFileName(char* szPath)//去除最后的文件名
{
	size_t len = strlen(szPath);
	for (int i = len; i >= 0; i--)
	{
		if(szPath[i]=='\\')
		{
			szPath[i]='\0';
			return true;
		}
	}
	return false;
}

void main ()
{
	char szPath[MAX_PATH];
	if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )//获取程序运行目录(全路径)
	/*如果此处编译提示:不能将参数 2 从“char [260]”转换为“LPWSTR”
		请将项目属性设为:使用多字节字符集*/
	{
		printf("GetModuleFileName failed (%d)\n", GetLastError());
		return;
	}
	CutLastFileName(szPath);

	cout << szPath << endl;
}


Python爬虫:抓取外卖平台餐厅菜单、价格与评价数据 美团外卖:国内领先的外卖平台之一,提供餐饮外卖、超市配送等服务。饿了么:另一大主流外卖平台,覆盖广泛的餐饮品类。等:国际性的外卖平台。在本文中,我们将以美团外卖为例,展示如何抓取餐厅的菜单、价格和评价等数据。我们会使用Python的爬虫库,如Scrapy和Selenium,来解决抓取任务。本文详细介绍了如何使用Python爬虫抓取外卖平台上的餐厅菜单、价格、评价等信息。我们展示了如何使用Scrapy和Selenium抓取静态与动态网页数据,如何清洗和存储数据,并讨论了如何应对外卖平台的反爬虫机制。 阅读详情

相关推荐

Python表白代码:“ 星光月夜烟花皆归你,我也归你”(满天烟花盛开、附番外玫瑰)

导语 "慢品人间烟火色 闲观人间岁月长" ———致自己​​​ ​ ???? 遇见我以后,我们的故事就开始了,愿你历经山河,仍觉得人间值得????。 ​ 星光月夜烟花皆归你,我也归你。关于烟花????大家都​知道多少?有多少表白故事情节都发生在烟 花下,想必木木子????不用说大家也知道叭~​​ 今天这则小短文就是关于烟花的故事!你准备好跟我一起进入烟花的世界了嘛? ​正文 “每一句文案,都有一个故事,你仔细听” ​ 1)环境安装???? 准备好:.

顾木子吖的博客 5万+

c++分离文件名和路径

string outname_base = filename; //这里使用string或者char数组都可以 //string用的方便,但是很多时候需要转换 char *p = (char*)outname_base.c_str(); string outname = basename(p); //最后斜杠之后的文件名 string outdir = dirname(p); //文件名之前的所有路径 ...

扎不下村村长的博客 1661

GPT注册与使用全流程详解:从零到一的实战指南

本文详细介绍了GPT的注册与使用全流程,从认识GPT作为智能对话助手开始,到注册前的设备与环境准备、手把手完成账号注册、首次使用指南以及进阶使用技巧。文章还涵盖了安全使用与注意事项,帮助用户从零开始高效利用GPT提升工作效率和内容创作能力。

weixin_33843409的博客 391

C++路径存储在string中,去掉路径中最后一个文件夹的名字

#include<iostream> #include<string> using namespace std; int main() { string total = "C:\\Users\\jack\\Documents\\Visual Studio 2015\\Projects\\GetScaleImgPart\\x64\\Release"; int pos =...

baiyang10010的博客 2331

Playwright Java环境配置避坑指南:浏览器路径、类加载与离线部署

Playwright作为现代端到端测试框架,其Java SDK突破了传统Selenium的Driver管理模式,将Chromium/Firefox/WebKit内核视为可编程运行时资源。其核心原理在于SDK与浏览器二进制分离——Maven仅管理Java字节码,而浏览器需独立下载、校验与沙箱加载。这一设计带来显著技术价值:跨平台一致性、进程隔离安全性及多浏览器并行能力;典型应用场景涵盖Spring Boot集成测试、金融级离线CI/CD、Kubernetes容器化部署及Air-Gapped封闭环境。然而,因J

weixin_32956805的博客 677

昇腾310B实战:FFmpeg硬件加速全流程解析与性能优化

本文详细解析了昇腾310B与FFmpeg硬件加速的全流程,包括环境配置、性能优化及常见问题排查。通过实战案例展示,昇腾310B在视频转码中性能提升可达6倍,同时降低功耗,特别适合多媒体处理和高性能计算场景。

m3n5b7v8c9x的博客 735

GetModuleFileName函数的用法

函数功能:获取exe可执行文件的绝对路径。 用法:通过获取到exe的路径,可以获取到程序路径下(父路径或者子路径)的一些其它文件路径。 char buff[MAX_PATH]; //用于存放获取的路径信息。 GetModuleFileName(NULL,buff,MAX_PATH); //第一个参数为句柄,NULL则指向当前程序。第二个参数用于存放地址的指针,第三个参数,系统自带的宏定义。不用管。

没有蛀牙lm的博客 2万+

23.网工入门篇--------介绍一下园区网典型组网架构及案例实践

园区网典型组网架构主要分为小型、中型、大型三种类型,以下是详细介绍及相关案例实践:

qq_31450765的博客 965

C++从路径中提取文件名

C风格: 1 char *p = <a href="https://www.baidu.com/s?wd=strrchr&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvnHT3nHuhP1wbPvPWnAN-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh

Sailor of World 5236

WRF气象建模实战:如何为JRA55非标准数据定制Vtable文件?

本文详细介绍了为WRF气象模型定制Vtable文件以支持JRA55非标准数据(特别是积雪数据)的完整实战流程。文章深入解析了WPS数据流中Vtable的核心映射逻辑,提供了从GRIB文件诊断、Vtable编写到METGRID.TBL调优的通用方法论,帮助用户解决非标准气象数据源适配的关键技术挑战。

c8d9e0f1的博客 673

神经算子:突破科学计算瓶颈的函数空间映射技术

神经算子(Neural Operators)是深度学习在科学计算领域的重要突破,它从根本上改变了处理连续物理问题的方式。与传统神经网络学习离散数据点映射不同,神经算子学习的是函数空间到函数空间的映射,这种范式转换使其具备离散化收敛性和超分辨率预测能力。在计算流体力学、天气预报等需要求解偏微分方程的场景中,神经算子能够在保持精度的同时将计算速度提升数个数量级。傅里叶神经算子(FNO)通过快速傅里叶变换实现高效计算,特别适合规则网格问题;而图神经算子(GNO)则擅长处理不规则网格和复杂几何形状。这种技术为参数敏

cuililai5127的博客 442

分离目录路径和文件名

分离目录路径和文件名   输入文件目录路径和文件名,要求分离成目录路径和文件名分别输出 输入格式: 例如:输入 c:\windows\winhelp.exe 输出格式: c:\windows (目录路径) winhelp.exe (文件名) 输入样例: /usr/bin/man 输出样例: /usr/bin man 这个

往事撩人醉的博客 4221

Transformer实战——Transformer自编码模型

自编码模型依赖于原始 Transformer 编码器,并且在解决分类问题时非常高效。除了 BERT 外,还有许多流行的自编码模型,在本节中,我们将一些除 BERT 外的自编码模型,这些模型的目标是通过优化预训练过程、增加层数或头数、改善数据质量、设计更好的目标函数等,来在下游任务上取得更好的表现。这些改进大致可以分为两个方面,更好的架构设计选择和预训练控制。

盼小辉丶的博客 9323

MFC 得到exe绝对路径

基本方法是调用一个函数:GetModuleFileName,这个函数会返回exe文件的路径,包括exe文件名,所以要做的事情就是把*.exe那段给去掉。代码如下:     CString 类名::GetFilePath() { char exepath[MAX_PATH]; CString strdir,tmpdir; memset(exep

lionpl的专栏 833

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C++获取运行exe路径和名称

有的时候需要获取运行路径,或者运行exe名称,都可以直接获取 //获取应用程序目录 char szapipath[MAX_PATH];//(D:\Documents\Downloads\TEST.exe) memset(szapipath,0,MAX_PATH); GetModuleFileNameA(NULL,szapipath,MAX_PATH); //获取应

学会简单的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

获取文件的绝对路径 和 注册表获取路径

     想要访问执行程序(.exe)路径下的文件,有以下几个步骤:     1.先通过函数GetModuleFileName获取执行程序的绝对路径。     TCHAR szPath[ MAX_PATH ] = {0};     GetModuleFileName( NULL, szPath, MAX_PATH );     其中GetModuleFileName函数为window

撑起属于自己一片天空 5476

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何得到相对路径(MFC)

设计思想是先得到当前程序的完全路径,再去掉本程序的名称就得到了当前的相对路径!!希望有更多想法的大家一起分享,一起学习wchar_t* allPathName = new wchar_t[200];                 //声明程序的完整路径名          GetModuleFileName(NULL,allPathName,200);               //得到程序

tanyufeng_521的专栏 1975

C++应用程序路径获取及操作

想要访问执行程序(.exe)路径下的文件,有以下几个步骤:     1.先通过函数GetModuleFileName获取执行程序的绝对路径。     TCHAR szPath[ MAX_PATH ] = {0};     GetModuleFileName( NULL, szPath, MAX_PATH );     其中GetModuleFileName函数为windows的AP

cy013的博客 4011

获取文件的绝对路径

想要访问执行程序(.exe)路径下的文件,有以下几个步骤:     1.先通过函数GetModuleFileName获取执行程序的绝对路径。     TCHAR szPath[ MAX_PATH ] = {0};     GetModuleFileName( NULL, szPath, MAX_PATH );     其中GetModuleFileName函数为windows的

imxiangzi的专栏 4935

GetModuleFileName函数

想要访问执行程序(.exe)路径下的文件,有以下几个步骤:     1.先通过函数GetModuleFileName获取执行程序的绝对路径。     TCHAR szPath[ MAX_PATH ] = {0};     GetModuleFileName( NULL, szPath, MAX_PATH );     其中GetModuleFileName函数为windows的

张兆春的博客 1万+

qt 获取当前程序运行路径_Qt 获取程序所在路径等特殊路径的方法

经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。 比如我们有一个程序在: C:/Qt/examples/tools/regexp/regexp.exe 1. 程序所在路径 获取 exe 程序所在路径,QCoreApplication 类里就实现了相关的功能: //输出:C:/Qt/examples/tools/r

yangguang_boy的博客 1万+

获取当前运行程序的名称或者是路径

/* Name: yao Copyright: Shared Author: VectorYao Date: 29/02/12 10:46 Description: 获取运行时程序的名称 */ #include #include #include int main(int argc, char *argv[]) { int i; char *name;

vyCode 2838

【转载】VC获取当前路径及程序名

VC上或取当前路径有多种方法,最常用的是使用 GetCurrentDirectory和GetModuleFileName函数,个中都有诸多注意事项,特别总结一下。 一、获取当前运行目录的绝对路径 1、使用GetCurrentDirectory函数 假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数 char szFilePath[MA...

weixin_30840253的博客 140

C语言从命令行提取程序名

在一些项目中,我们需要在项目的bin目录中生成可执行文件,除了参数处理外,有个很重要的过程就是获取程序名,如下是比较严谨的获取程序名的方式,来源于PostgreSQL。 关于静态编译检查:

wggplus的博客 1637

VC++获取当前路径及程序名的实现代码

VC上或取当前路径有多种方法,最常用的是使用 GetCurrentDirectory和GetModuleFileName函数,个中都有诸多注意事项,特别总结一下 一、获取当前运行目录的绝对路径 1、使用GetCurrentDirectory函数假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数 char pBuf[MAX_PATH]; GetCurren...

weixin_33898876的博客 375

获取当前运行程序路径

VC上或取当前路径有多种方法,最常用的是使用 GetCurrentDirectory和GetModuleFileName函数,个中都有诸多注意事项,特别总结一下。 一、获取当前运行目录的绝对路径 1、使用GetCurrentDirectory函数 假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数 char pBuf[MAX_PATH]; GetC

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 7388
上一篇: strcat与strcpy与strcmp与strlen
下一篇: gcc和g++区别
devil_pull
博客等级 码龄15年 12粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值