boost::filesystem
中是否有功能可以扩展以用户主目录符号(Unix上的~
)开头的路径,类似于Python提供的os.path.expanduser函数?
编号。
但您可以通过执行以下操作来实现它:
namespace bfs = boost::filesystem;
using std;
bfs::path expand (bfs::path in) {
if (in.size () < 1) return in;
const char * home = getenv ("HOME");
if (home == NULL) {
cerr << "error: HOME variable not set." << endl;
throw std::invalid_argument ("error: HOME environment variable not set.");
}
string s = in.c_str ();
if (s[0] == '~') {
s = string(home) + s.substr (1, s.size () - 1);
return bfs::path (s);
} else {
return in;
}
}
canonical(path("~/test.txt"))
的东西,但是没有成功。使用方法不正确吗? - Daniel