Emi*_*ier 15 c++ boost boost-filesystem
有没有办法使用Boost.Filesystem获取平台的路径分隔符?通过路径分隔符,我的意思/是Unix和\Windows.
我已经知道我可以使用boost::filesystem::path::operator/连接适当的分隔符来连接两个路径.但我只想要/或者\.
我也知道我可以使用#ifdef _WIN32,但我更喜欢Boost.Filesystem告诉我适当的分隔符.
编辑:我想使用Boost.Filesystem API的第3版,如Boost 1.48中所使用的.
Emi*_*ier 14
好像boost::filesystem::path::make_preferred是票:
效果:包含的路径名将转换为首选本机格式.[注意:在Windows上,效果是用反斜杠替换斜杠.在POSIX上,没有任何效果. - 结束说明]
例:
namespace bfs = boost::filesystem;
bfs::path slash("/");
bfs::path::string_type preferredSlash = slash.make_preferred().native();
Run Code Online (Sandbox Code Playgroud)
随着1.57版本,现在升压有一个更好的解决方案,这只是常数char/ wchar_t(取决于不同的平台)boost::filesystem::path::preferred_separator.
有关更多信息,请阅读http://www.boost.org/doc/libs/release/libs/filesystem/doc/reference.html#Operating-system-examples.它还有更多与系统相关的功能.
简单的例子:
#include <boost/filesystem.hpp>
#include <iostream>
int main() {
std::cout << boost::filesystem::path::preferred_separator << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16837 次 |
| 最近记录: |