windows下使用C/C++编写一个方法,传入文件的完整路径,取出文件的基本名称,后缀名等数据。
2. 示例代码: 获取文件名称#include3. 取后缀extern "C" { #include #include #include #include #include #include }; //获取文件的名称 void get_FilebaseName1(char *path, std::string &name) { char *p=path+strlen(path)-1; while (p!= path) { if (*p == '\' || *p == '/') { p++; //向前加一位,去掉斜杠 name = p; return; } p--; } name = p; } //获取文件的名称 void get_FilebaseName2(std::string path, std::string &name) { for (int i= path.size()-1;i>0;i--) { if (path[i] == '\' || path[i] == '/') { name=path.substr(i+1); return; } } name = path; } int main() { std::string name; char path[] = "D:/123/456/1.c"; char path2[] = "D:\123\456\2.c"; get_FilebaseName2(path,name); printf("name1:%sn",name.c_str()); get_FilebaseName2(path2, name); printf("name2:%sn", name.c_str()); return 0; }
#includeextern "C" { #include #include #include #include #include #include }; //后缀 void get_FileSuffix(std::string path, std::string &suffix) { for (int i = path.size() - 1; i > 0; i--) { if (path[i] == '.') { suffix = path.substr(i + 1); return; } } suffix = path; } int main() { std::string name; char path[] = "D:/123/456/1.c"; char path2[] = "D:\123\456\2.c"; get_FileSuffix(path2, name); printf("name3:%sn", name.c_str()); return 0; }



