Как я могу изменить текущий путь, используя Boost.Filesystem - PullRequest
14 голосов
/ 15 апреля 2011

При запуске программы я хочу напечатать текущий путь, используя current_path () ("C: \ workspace \ projects").И затем я хочу иметь возможность изменить путь, скажем, «c: \ program files», поэтому, когда я снова печатаю current_path (), я хочу, чтобы печаталось «c: \ program files».Примерно так:

int main()
{
   cout << current_path() << endl;  // c:\workspace\projects
   aFunctionToChangePath("c:\program files");
   cout << current_path() << endl;  // c:\program files
}

Есть ли в библиотеке функция, которую мне не хватает, чтобы я мог выполнить это?

Ответы [ 2 ]

20 голосов
/ 15 апреля 2011
int main()
{
   cout << current_path() << '\n'; // c:\workspace\projects
   current_path("c:\\program files");
   cout << current_path() << '\n';  // c:\program files
}
1 голос
/ 05 марта 2014

Если вы хотите внести изменения в другой каталог, я предлагаю попробовать этот пример:

boost::filesystem::path full_path( boost::filesystem::current_path() );
std::cout << "Current path is : " << full_path << std::endl;
//system("cd ../"); // change to previous dir -- this is NOT working
chdir("../"); // change to previous dir -- this IS working
boost::filesystem::path new_full_path( boost::filesystem::current_path() );
std::cout << "Current path is : " << new_full_path << std::endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...