您的位置:首页 >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;
}
这段代码使用了Windows API中的_splitpath_s函数来分解文件路径,从而提取文件的基本名称和后缀名。该方法可以处理不同格式的路径(如使用/或\作为分隔符)。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9