Расширение пути пользователя с помощью boost :: filesystem

Есть ли в boost::filesystem функциональность для расширения путей, начинающихся с символа домашнего каталога пользователя (~ в Unix) аналогично os.path.expanduser в Python?

7 голосов | спросил Daniel 20 +03002015-10-20T01:21:34+03:00312015bEurope/MoscowTue, 20 Oct 2015 01:21:34 +0300 2015, 01:21:34

1 ответ


0

Нет.

Но вы можете реализовать это, выполнив что-то вроде этого:

  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;
    }
  }

Также посмотрите похожий вопрос предложено @WhiteViking.

ответил gauteh 16 FebruaryEurope/MoscowbThu, 16 Feb 2017 15:29:27 +0300000000pmThu, 16 Feb 2017 15:29:27 +030017 2017, 15:29:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132