获得提升的绝对路径

时间:2015-11-29 08:26:23

标签: boost

我的主目录中有一个文件:

exists

我想获得完整的绝对路径:

exists

我如何得到它?

我认为规范会有所帮助,但是对于规范工作,文件应~/abc.csv,而function merge(content, values) { // loop over all the keys in the values object Object.keys(values).forEach(function(key) { // look for the key surrounded by % in the string // and replace it by the value from values content = content.replace('%' + key + '%', values[key]); }); return content; } var mailValues = {}; mailValues.first_name = "Janet"; mailValues.last_name = "Doe"; var emailTemplate = "Hi %first_name% %last_name%! Thanks for completing this code challenge :)"; var mergedContent = merge(emailTemplate, mailValues); document.write(mergedContent);上的for ... in函数返回false。

1 个答案:

答案 0 :(得分:2)

这不是使路径绝对,也不是规范。

它是~字符的shell扩展。而且它不是Boost Filesystem中的一个功能。

您可以自行编码:

<强> Live On Coliru

#include <boost/filesystem.hpp>
#include <iostream>

using boost::filesystem::path;

path expand(path p) {
    char const* const home = getenv("HOME");
    if (home == nullptr)
        return p; // TODO handle as error?

    auto s = p.generic_string<std::string>();
    if (!s.empty() && s.find("~/") == 0u) {
        return home + s.substr(1);
    }
    return p;
}


int main() {
    path sample = "~/test.cpp";
    std::cout << expand(sample) << "\n";
}

在我的系统上打印“/home/sehe/test.cpp”