我有一个文件名( 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 许可协议
我有一个文件名( 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 许可协议
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 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答830 阅读
1 回答908 阅读
1 回答940 阅读
1 回答707 阅读
1 回答810 阅读
有一个标准的 Windows 函数 PathRemoveFileSpec 。如果您只支持 Windows 8 及更高版本,强烈建议改用 PathCchRemoveFileSpec 。在其他改进中,它不再限于
MAX_PATH
(260) 个字符。