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

时间:2018-08-10 02:00:47

标签: 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或是否有一种更简单/更容易的方法来获取可执行文件的文件名。

1 个答案:

答案 0 :(得分:3)

  

但是我也只想存储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