如何在C++中从路径中提取文件名和扩展名

如何在C++中从路径中提取文件名和扩展名

从给定的路径中提取文件名和其扩展名是用户的常见需求。这个过程很简单,但在某些情况下会变得困难(不同的操作系统、文件类型等)。本文将教你如何在C++中从路径中提取文件名和扩展名。

从路径中提取文件名和扩展名

首先,在变量 文件路径 中定义文件的路径。这个变量作为参数发送到 filesystem::path 类构造函数。然后,我们使用公共成员函数 filename 从路径中获取文件名和扩展名。然后使用 stem 成员函数获取文件名,最后使用 extension 成员函数获取文件扩展名。

代码:

// C++ Program for Extracting
// file names and extensions from a path
#include <filesystem>
#include <iostream>
  
using namespace std;
  
int main()
{
    // 文件的路径
    char* filepath = "C:\\Users\\Drunk\\Desktop\\l.png";
  
    // 将路径作为参数传递给函数
    filesystem::path p(filepath);
  
    // 分别显示文件名和扩展名
    // 通过访问各自的构造函数
    cout << "filename and extension: " << p.filename()
         << std::endl;
    cout << "filename only: " << p.stem() << std::endl;
    cout << "Extension: " << p.extension();
  
    return 0;
}  

输出:

如何在C++中从路径中提取文件名和扩展名

输出

注意: 上述方法也适用于没有扩展名的文件。它们会包含文件名,但扩展名会是一个空字符串。例如,如果文件的路径改为

C:\Users\Apples\touch

输出:

如何在C++中从路径中提取文件名和扩展名

输出

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程