1.PathFindFileName函数的作用是返回路径中的文件名。

  1. PTSTR PathFindFileName(
  2. __in PTSTR pPath
  3. );

pPath是指向文件路径字符串的指针,函数返回指向文件名的指针(如果找到的话),否则返回指向路径开头的指针。

PathFindFileName既支持Windows下的反斜杆,也支持Unix下的斜杠,还支持斜杆和反斜杠的混合,

例如:

  1. * Author: Chechen
  2. * Date: 2014/7/24
  3. */
  4. #include <stdio.h>
  5. #include <Shlwapi.h>
  6.  
  7. int main()
  8. {
  9. char path[] = "C:\\Windows\\System32/notepad.exe";
  10. /* will output "notepad.exe" */
  11. printf("%s\n", PathFindFileName(path));
  12. return ;
  13. }

2.获取指定的系统路径 SHGetSpecialFolderPath

  1. #include <shlobj.h>
  2. #pragma comment(lib, "shell32.lib")
  3.  
  4. TCHAR szPath[MAX_PATH];
  5. SHGetSpecialFolderPathNULL,szPath,CSIDL_COMMON_DOCUMENTS, FALSE);
  6. // szPath 就是

3.PathRemoveFileSpec函数

PathRemoveFileSpec函数的作用是将路径末尾的文件名和反斜杠去掉。

例如,我们想获取EXE文件自身所在的文件夹,可以这样写:

  1. #include <stdio.h>
  2. #include <Shlwapi.h>// 使用PathRemoveFileSpec函数

  3. #pragma comment(lib, "shlwapi.lib") //这个库也要有,不然会报链接错误
  4. int main(int argc, char *argv[])
  5. {
  6. //多字节的方法
  7. char self[MAX_PATH];
  8. //方法一:
  9. GetModuleFileName(NULL, self, MAX_PATH);//得到工作路径 例如:C:\\TestDemo\\Debug\\Service.exe
  10. PathRemoveFileSpec(self);//C:\\TestDemo\\Debug
  11. printf("%s\n", self);
  12.  
  13. /*strrchr()函数的作用是:
  14. 查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
  15. 如果未能找到指定字符,那么函数将返回False。
  16. */
  17. //方法二:
  18. char self2[MAX_PATH];
  19. GetModuleFileName(NULL, self2, MAX_PATH);
  20. *strrchr(self2,'\\') = '\0';
  21. printf("%s\n", self2);
  22.  
  23. return ;
  24. }
  1. #include <stdio.h>
  2. #include <Shlwapi.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. //Unicode的方法
  7. TCHAR text[MAX_PATH];
  8. //方法一:
  9. GetModuleFileName(NULL, text, MAX_PATH);//得到工作路径 例如:C:\\TestDemo\\Debug\\Service.exe
  10. PathRemoveFileSpec(text);//C:\\TestDemo\\Debug
  11.  
  12. /*wcsrchr()函数的作用是:
  13. 查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
  14. 如果未能找到指定字符,那么函数将返回False。
  15. */
  16. //方法二:
  17. TCHAR text2[MAX_PATH];
  18. GetModuleFileName(NULL, text2, MAX_PATH);
  19. *wcsrchr(text2,'\\') = '\0';
  20.  
  21. return ;
  22. }
  1. TCHAR szModulePath[MAX_PATH * ];
  2. ZeroMemory(szModulePath, sizeof(szModulePath));
  3. ::GetModuleFileName(NULL, szModulePath, _countof(szModulePath) - );
  4.  
  5. TCHAR *cp = _tcsrchr(szModulePath, _T('\\'));//C:\\TestDemo\\Debug\\
  6. if (*cp)
  7. {
  8. *(cp + ) = _T('\0'); // remove file name
  9. }

4.得到文件扩展名

LPTSTR PathFindExtension( LPCTSTR pPath );

判断文件是否存在

BOOL PathFileExistsW(LPCWSTR pszPath);

VC++ PathFindFileName函数,由文件路径获得文件名的更多相关文章

  1. JS如何获取上传标签的文件路径和文件名?

    如何使用JS获取type="file"的标签上传文件的文件路径及文件名: 代码: <!doctype html><html lang="en" ...

  2. python获取文件路径, 文件名, 后缀名

    def get_filePath_fileName_fileExt(fileUrl): """ 获取文件路径, 文件名, 后缀名 :param fileUrl: :ret ...

  3. python关于文件路径和文件名的操作

    os.path.abspath(path) #返回绝对路径(包含文件名的全路径) os.path.basename(path) —— 去掉目录路径获取文件名 os.path.dirname(path) ...

  4. C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例

    场景 现在有一个文件路径 E:\\BTSData\\2019-11\\admin_20180918_1_1_2 需要获取最后的文件名admin_20180918_1_1_2 需要获取文件的上层目录20 ...

  5. Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名

    string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string Directory ...

  6. C#使用System.IO.Path获取文件路径、文件名

    class Program { static void Main(string[] args) { //获取当前运行程序的目录 string fileDir = Environment.Current ...

  7. 由struts错误使用引发的漏洞,使用参数作为返回的文件路径或文件名,作为返回result 值

    该错误可以导致他人任意访问该路径下的任何文件. struts 文件 <?xml version="1.0" encoding="UTF-8" ?> ...

  8. C#通过文件路径获取文件名小技巧

    string fullPath = @"\WebSite1\Default.aspx"; string filename = System.IO.Path.GetFileName( ...

  9. php文件路径获取文件名

    物理截取: $file = '/www/htdocs/inc/lib.inc.php'; $filename = basename($file); echo $filename, '<br/&g ...

随机推荐

  1. 数据库管理系统的ACID特性

    数据库管理系统(DBMS)的事务都遵循着四种标准规格的约定.将这四种特性的首字母结合起来就统称为ACID特性.这些约定是所有DBMS都必须遵守的规则. 原子性 原子性是指在事务结束时,其中所包含的更新 ...

  2. gateio API

    本文介绍gate io API 所有交易对 API 返回所有系统支持的交易对 URL: https://data.gateio.io/api2/1/pairs 示例: # Request GET: h ...

  3. HTML5 桌面提示

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. 程序猿职业生涯中的 Norris 常数

    我的朋友Clift Norris发现了一个基本常数.我称之为Norris常数,一个未经培训的程序猿在他或她遇到瓶颈之前能写出的平均代码量.Clift预计这个值是1500行. 超过这个数以后,代码会变得 ...

  5. DeepMind提出空间语言集成模型SLIM,有效编码自然语言的空间关系

    前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力.近日.DeepMind 基于 GQN 提出一种新模型.可以捕捉空间关系的语义(如 behind.left ...

  6. A solution for MySQL Assertion failure FIL_NULL

    A solution for MySQL Assertion failure FIL_NULL http://michaelfranzl.com/2014/01/25/solution-mysql-a ...

  7. 使用Lotus Enterprise Integrator (LEI)将Domino附件移至关系数据库(图文过程)

    参考IBM解决方案:http://www.ibm.com/developerworks/cn/lotus/LEI-attachments/index.html 转载请注明出处:http://blog. ...

  8. 8 jmeter之集合点

    集合点:集合点用以同步虚拟用户,以便恰好在同一时刻执行任务.在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户 ...

  9. Oracle数据库返回字符类型-1~1的结果处理

    如果实体类中定义的字段是String类型,Oracle数据库中返回的是数字类型,那么Oracle返回0.xxx的时候会丢失前面的0. 要想不丢失0,那么数据库返回的就要是字符串类型的,所以要将返回值转 ...

  10. python 皮尔森相关系数

    皮尔森理解 皮尔森相关系数(Pearson correlation coefficient)也称皮尔森积矩相关系数(Pearson product-moment correlation coeffic ...