商城首页欢迎来到中国正版软件门户

您的位置:首页 >C/C++获取文件名和后缀名方法

C/C++获取文件名和后缀名方法

  发布于2025-08-29 阅读(0)

扫一扫,手机访问

在Windows环境下使用C/C++编写一个方法,传入文件的完整路径,并提取文件的基本名称和后缀名。以下是实现这个功能的示例代码:

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

// 提取文件的基本名称
void get_FileBaseName(const std::string& path, std::string& baseName) {
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];

    _splitpath_s(path.c_str(), drive, dir, fname, ext);
    baseName = fname;
}

// 提取文件的后缀名
void get_FileSuffix(const std::string& path, std::string& suffix) {
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];

    _splitpath_s(path.c_str(), drive, dir, fname, ext);
    suffix = ext;
    // 移除前导点的字符
    if (!suffix.empty() && suffix[0] == '.') {
        suffix = suffix.substr(1);
    }
}

int main() {
    std::string path1 = "D:/123/456/1.c";
    std::string path2 = "D:\\123\\456\\2.c";

    std::string baseName1, suffix1;
    get_FileBaseName(path1, baseName1);
    get_FileSuffix(path1, suffix1);

    std::string baseName2, suffix2;
    get_FileBaseName(path2, baseName2);
    get_FileSuffix(path2, suffix2);

    std::cout << "文件1的基本名称: " << baseName1 << std::endl;
    std::cout << "文件1的后缀名: " << suffix1 << std::endl;

    std::cout << "文件2的基本名称: " << baseName2 << std::endl;
    std::cout << "文件2的后缀名: " << suffix2 << std::endl;

    return 0;
}

C/C++编程: 获取路径里的文件名称、后缀名

这段代码使用了Windows API中的_splitpath_s函数来分解文件路径,从而提取文件的基本名称和后缀名。该方法可以处理不同格式的路径(如使用/\作为分隔符)。

本文转载于:https://cloud.tencent.com/developer/article/1974906 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注