解决:从路径获取文件名

最后更新: 09/11/2023
作者: C 源跟踪

当然,让我们深入研究一下借助 C++ 从路径获取文件名的主题​​。

介绍
从路径中提取文件名是编程中的一项常见任务,尤其是在涉及文件处理的操作中。 本文深入解释了如何使用 C++ 完成此任务。 读完本文后,您将能够理解并实施该问题的解决方案。

解决方案
该解决方案涉及使用 C++ 标准库提供的内置函数。 我们将重点关注的库是 C++17 中引入的文件系统库。 它提供了操作文件和目录的各种功能。

的#include
std::string get_filename(std::string 路径){
返回 std::filesystem::path(path).filename().string();
}

了解守则
get_filename 函数接受一个字符串参数 - 路径,并返回文件名。 该函数利用文件系统库。 我们使用提供的路径字符串创建一个 filesystem::path 对象,并使用 filename() 方法获取文件名。 然后使用 string() 方法将文件名转换为字符串并由函数返回。

  • 第一行是我们在代码中包含文件系统库的地方。
  • get_filename 函数是使用字符串参数路径定义的。
  • 我们使用路径字符串创建一个 filesystem::path 对象。
  • 在 filesystem::path 对象上调用 filename 方法来获取文件名。
  • 然后使用 string() 方法将文件名转换为字符串。

文件系统库

C++17 标准引入了文件系统库,它由一系列旨在对文件路径、文件和目录执行操作的类和函数组成。 它的类之一 - filesystem::path 在我们的解决方案中用于从路径中提取文件名。

该库允许您执行读取、写入、重命名文件、创建和删除目录等操作,大大简化了 C++ 中的文件系统操作。

替代方法

在文件系统库不可用的情况下,可以使用其他方法从路径中提取文件名。 一种替代方法是使用字符串库中可用的字符串操作函数。 这是一个例子:

的#include
std::string get_filename_old(std::string 路径){
std::size_t 找到 = path.find_last_of(“/\”);
返回路径.substr(找到+1);
}

总而言之,使用 C++ 中的文件系统库可以从路径中提取文件名。 熟悉该库的功能至关重要,因为文件处理在许多编程任务中都很普遍。

相关文章: