c++ - 有没有一种简单的方法可以从 C++ 中的路径获取文件名?

标签 c++ std

目前,我正在使用 GetModuleFileName 获取文件路径,并将其存储在 szExeFilePath 中:

TCHAR szExeFilePath[MAX_PATH];
GetModuleFileName(NULL, szExeFilePath, MAX_PATH);

然后返回 C:\\dev\\program\\Debug\\program.exe

但是我也想只存储 program.exe。我环顾四周,发现 _splitpath_s 可能是执行此操作的最简单方法。唯一的问题是我没有看到任何关于如何实际使用 _splitpath_s 的解释,我根本无法让它工作。

所以基本上我是在问如何使用 _splitpath_s 或者是否有更简单/更容易的方法来获取可执行文件的文件名。

最佳答案

However I also want to store just the program.exe

使用 C++17,您可以简单地使用 std::filesystem

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main()
{
    std::cout << fs::path("C:/dev/program/Debug/program.exe").filename() << '\n' ;
}

Demo here

关于c++ - 有没有一种简单的方法可以从 C++ 中的路径获取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51777896/

相关文章:

c++ - 在可执行文件的资源中,如何找到默认图标?

c++ - 友元迭代器可以访问非静态数据成员吗?

c++ - STL和stdlib有什么关系

c++ - 如何确保始终有给定数量的线程? (另外,这是线程的一个很好的用法吗?)

c++ - 从 std::vector 中移除元素

c++ - localtime 和 mktime 的时间戳问题

c++ - CPP for循环遍历字符串的字符从意外索引开始?

c++ - 在 C++ 中,定义一个非常简单的对象的最有效方法是什么

c++ - vector 比较失败

C++ - 将输入函数作为字符串调用