从文件名中获取目录名

新手上路,请多包涵

我有一个文件名( C:\folder\foo.txt ),我需要在 C++ 中检索文件夹名称( C:\folder )。在 C# 中,我会做这样的事情:

 string folder = new FileInfo("C:\folder\foo.txt").DirectoryName;

是否有可以在 C++ 中用于从文件名中提取路径的函数?

原文由 Jon Tackabury 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

有一个标准的 Windows 函数 PathRemoveFileSpec 。如果您只支持 Windows 8 及更高版本,强烈建议改用 PathCchRemoveFileSpec 。在其他改进中,它不再限于 MAX_PATH (260) 个字符。

原文由 Andreas Rejbrand 发布,翻译遵循 CC BY-SA 3.0 许可协议

 auto p = boost::filesystem::path("test/folder/file.txt");
 std::cout << p.parent_path() << '\n';             // test/folder
 std::cout << p.parent_path().filename() << '\n';  // folder
 std::cout << p.filename() << '\n';                // file.txt

您可能需要 p.parent_path().filename() 来获取父文件夹的名称。

原文由 srbcheema1 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题