Windows 下处理文件路径相关的 API 介绍

处理文件路径信息是经常要用到的字符串处理的手段,应用场景非常的多,不论是 Linux 还是 Windows,在我没接触这一系列函数之前,都是使用一系列字符串处理函数来自己写。而在 Windows 环境下,系统给我们提供了一系列处理路径相关的 API,我们在需要使用的时候直接调用即可,不但可以避免自己使用字符串处理函数处理时可能造成的各种问题,还可以加快我们编程的速度。当然如果你还没有使用字符串处理函数自己处理过路径等信息,我强烈建议你先自己尝试学习一下。轮子可不重复制造,但你必须要清楚轮子的制作工艺,否则在出现故障时就不知道如何处理了。

示例代码

#include "stdafx.h"
#include <Shlwapi.h>
#include <iostream>

using namespace std;

#ifdef _UNICODE
#define tout wcout
#else
#define tout cout
#endif

#pragma comment(lib, "Shlwapi.lib")

int _tmain(int argc, _TCHAR* argv[])
{
    // 获取程序自身的路径
    TCHAR szFilePath[MAX_PATH] = {0};
    GetModuleFileName(NULL, szFilePath, MAX_PATH);

    // 打印完整路径
    tout << szFilePath << endl;

    // 去掉文件名
    PathRemoveFileSpec(szFilePath);
    tout << szFilePath << endl;

    // 追加一个文件名
    PathAppend(szFilePath, _T("test.dll"));
    tout << szFilePath << endl;

    // 获取文件名
    tout << PathFindFileName(szFilePath) << endl;

    // 获取文件后缀名
    tout << PathFindExtension(szFilePath) << endl;

    getchar();
    return 0;
}

示例代码中仅仅介绍了一些经常用到的 API,其中还有很多关于路径相关的处理函数。我一时没找到这一系列函数在 MSDN 的页面,大家使用时可以在 VS 中按 F1 跟着找一下其他的函数。

1 评论

发表评论