VC++ PathFindFileName函数,由文件路径获得文件名
1.PathFindFileName函数的作用是返回路径中的文件名。
PTSTR PathFindFileName(
__in PTSTR pPath
);
pPath是指向文件路径字符串的指针,函数返回指向文件名的指针(如果找到的话),否则返回指向路径开头的指针。
PathFindFileName既支持Windows下的反斜杆,也支持Unix下的斜杠,还支持斜杆和反斜杠的混合,
例如:
* Author: Chechen
* Date: 2014/7/24
*/
#include <stdio.h>
#include <Shlwapi.h>
int main()
{
char path[] = "C:\\Windows\\System32/notepad.exe";
/* will output "notepad.exe" */
printf("%s\n", PathFindFileName(path));
return ;
}
2.获取指定的系统路径 SHGetSpecialFolderPath
#include <shlobj.h>
#pragma comment(lib, "shell32.lib") TCHAR szPath[MAX_PATH];
SHGetSpecialFolderPathNULL,szPath,CSIDL_COMMON_DOCUMENTS, FALSE);
// szPath 就是
3.PathRemoveFileSpec函数
PathRemoveFileSpec函数的作用是将路径末尾的文件名和反斜杠去掉。
例如,我们想获取EXE文件自身所在的文件夹,可以这样写:
#include <stdio.h>
#include <Shlwapi.h>// 使用PathRemoveFileSpec函数
#pragma comment(lib, "shlwapi.lib") //这个库也要有,不然会报链接错误
int main(int argc, char *argv[])
{
//多字节的方法
char self[MAX_PATH];
//方法一:
GetModuleFileName(NULL, self, MAX_PATH);//得到工作路径 例如:C:\\TestDemo\\Debug\\Service.exe
PathRemoveFileSpec(self);//C:\\TestDemo\\Debug
printf("%s\n", self); /*strrchr()函数的作用是:
查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
如果未能找到指定字符,那么函数将返回False。
*/
//方法二:
char self2[MAX_PATH];
GetModuleFileName(NULL, self2, MAX_PATH);
*strrchr(self2,'\\') = '\0';
printf("%s\n", self2); return ;
}
#include <stdio.h>
#include <Shlwapi.h> int main(int argc, char *argv[])
{
//Unicode的方法
TCHAR text[MAX_PATH];
//方法一:
GetModuleFileName(NULL, text, MAX_PATH);//得到工作路径 例如:C:\\TestDemo\\Debug\\Service.exe
PathRemoveFileSpec(text);//C:\\TestDemo\\Debug /*wcsrchr()函数的作用是:
查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
如果未能找到指定字符,那么函数将返回False。
*/
//方法二:
TCHAR text2[MAX_PATH];
GetModuleFileName(NULL, text2, MAX_PATH);
*wcsrchr(text2,'\\') = '\0'; return ;
}
TCHAR szModulePath[MAX_PATH * ];
ZeroMemory(szModulePath, sizeof(szModulePath));
::GetModuleFileName(NULL, szModulePath, _countof(szModulePath) - ); TCHAR *cp = _tcsrchr(szModulePath, _T('\\'));//C:\\TestDemo\\Debug\\
if (*cp)
{
*(cp + ) = _T('\0'); // remove file name
}
4.得到文件扩展名
LPTSTR PathFindExtension( LPCTSTR pPath );
判断文件是否存在
BOOL PathFileExistsW(LPCWSTR pszPath);
VC++ PathFindFileName函数,由文件路径获得文件名的更多相关文章
- JS如何获取上传标签的文件路径和文件名?
如何使用JS获取type="file"的标签上传文件的文件路径及文件名: 代码: <!doctype html><html lang="en" ...
- python获取文件路径, 文件名, 后缀名
def get_filePath_fileName_fileExt(fileUrl): """ 获取文件路径, 文件名, 后缀名 :param fileUrl: :ret ...
- python关于文件路径和文件名的操作
os.path.abspath(path) #返回绝对路径(包含文件名的全路径) os.path.basename(path) —— 去掉目录路径获取文件名 os.path.dirname(path) ...
- C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例
场景 现在有一个文件路径 E:\\BTSData\\2019-11\\admin_20180918_1_1_2 需要获取最后的文件名admin_20180918_1_1_2 需要获取文件的上层目录20 ...
- Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名
string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string Directory ...
- C#使用System.IO.Path获取文件路径、文件名
class Program { static void Main(string[] args) { //获取当前运行程序的目录 string fileDir = Environment.Current ...
- 由struts错误使用引发的漏洞,使用参数作为返回的文件路径或文件名,作为返回result 值
该错误可以导致他人任意访问该路径下的任何文件. struts 文件 <?xml version="1.0" encoding="UTF-8" ?> ...
- C#通过文件路径获取文件名小技巧
string fullPath = @"\WebSite1\Default.aspx"; string filename = System.IO.Path.GetFileName( ...
- php文件路径获取文件名
物理截取: $file = '/www/htdocs/inc/lib.inc.php'; $filename = basename($file); echo $filename, '<br/&g ...
随机推荐
- 转:PrintWriter中write与println方法的区别
原文地址:https://blog.csdn.net/qq_25610165/article/details/57083118 自己遇到的问题是:刚开始学 socket 通讯, 代码运行是好着的,后来 ...
- MongoDB的"副本“数据库服务器
1.假设1数据库服务器为活跃服务器(主服务器),2和3为备份服务器,当1出现故障的时候,那么会在2和3中推选出一个(根据权重的等规则)作为活跃服务器,而当1又恢复正常了之后呢,它将以备份服务器的身份出 ...
- Vue中父子组件执行的先后顺序探讨
前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...
- 聊一聊Linux中的工作队列2
上一篇文章对工作队列原理以及核心数据结构做了简单介绍,本文重点介绍下workqueue的创建以及worker的管理. 一.工作队列的创建(__alloc_workqueue_key) struct w ...
- 14 jmeter性能测试实战--数据库MySQL
需求 测试用户表(对用户表select操作) 测试步骤 1.MySQL驱动下载并安装. 2.测试计划面板点击“浏览”按钮,将JDBC驱动(mysql-connector-java.jar)添加进来. ...
- centos 基础修改文件权限
在centos 下 nginx 默认用户是user = apachegroup = apache 所以需要更改文件和文件夹权限时候需要满足apache用户才能进行 常用方式: $ chmod Runt ...
- 修改class文件
http://yucaifu1989.iteye.com/blog/1850500 http://blog.csdn.net/hexin373/article/details/6669813 使用ja ...
- [lr] 基本色调调整和色调曲线
基本色调调整 • 曝光度调整 ▶ 控制区域 在Lightroom中,软件提示我们曝光控制的是如图中间调的区域.我们把鼠标移动到曝光工具条上,软件会提示我们这个区域: ▶ 实际效果 ▪ 增加曝光值 增加 ...
- 关闭Oracle 11g的DPR特性
关闭Oracle 11g的DPR(Direct Path Read)特性 查看event参数值: SQL> show parameter event NAME TYPE VALUE ------ ...
- promise-async-await
通常而言,这3个关键字 都是用来「优雅」的处理ajax异步请求的 //es6的时候promise诞生,很好的解决了嵌套回调地狱,改良方案为链式回调. // es2017的时候诞生了async.awai ...