zoukankan      html  css  js  c++  java
  • VC++ PathFindFileName函数,由文件路径获得文件名

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

    PTSTR PathFindFileName(
        __in  PTSTR pPath
    );

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

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

    例如:

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

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

    1 1  #include   <shlobj.h>   
    2 2  #pragma   comment(lib,   "shell32.lib")   
    3 3    
    4 4  TCHAR   szPath[MAX_PATH];
    5       SHGetSpecialFolderPathNULL,szPath,CSIDL_COMMON_DOCUMENTS,   FALSE);   
    6 5  //   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 ", self); /*strrchr()函数的作用是: 查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符; 如果未能找到指定字符,那么函数将返回False。 */ //方法二: char self2[MAX_PATH]; GetModuleFileName(NULL, self2, MAX_PATH); *strrchr(self2,'\') = ''; printf("%s ", self2); return 0; }
    #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,'\') = '';
    
        return 0;
    }
    TCHAR    szModulePath[MAX_PATH * 2];
    ZeroMemory(szModulePath, sizeof(szModulePath));
    ::GetModuleFileName(NULL, szModulePath, _countof(szModulePath) - 2);
    
    TCHAR *cp = _tcsrchr(szModulePath, _T('\'));//C:\TestDemo\Debug\
    if (*cp)
    {
       *(cp + 1) = _T('');        // remove file name
    }

    4.得到文件扩展名

    LPTSTR PathFindExtension( LPCTSTR pPath );

    判断文件是否存在

    BOOL PathFileExistsW(LPCWSTR pszPath);

  • 相关阅读:
    获取系统环境变量
    改变系统提示信息
    获取任务栏大小
    获取系统启动后经过的时间
    获取系统版本号
    z-tree的使用
    vue学习-day05 -- 案例:名字合并(监听data数据的改变)
    vue学习-day04(路由)
    eclipse在线安装ermaster插件
    vue学习-day03(动画,组件)
  • 原文地址:https://www.cnblogs.com/chechen/p/3864812.html
Copyright © 2011-2022 走看看