Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

libs/filesystem/example/directory_symlink_parent_resolution.cpp

//  directory_symlink_parent_resolution.cpp  -------------------------------------------//

//  Copyright Beman Dawes 2015

//  Distributed under the Boost Software License, Version 1.0.
//  See http://www.boost.org/LICENSE_1_0.txt

//  Library home page: http://www.boost.org/libs/filesystem

#include <boost/filesystem.hpp>
#include <boost/filesystem/string_file.hpp>
#include <boost/detail/lightweight_main.hpp>
#include <iostream>
#include <string>

using std::cout;
using std::endl;
using namespace boost::filesystem;

int cpp_main(int argc, char* argv[])
{
#ifdef BOOST_WINDOWS_API
    cout << "BOOST_WINDOWS_API" << endl;
#else
    cout << "BOOST_POSIX_API" << endl;
#endif

    path test_dir(current_path() / "dspr_demo");

    remove_all(test_dir);
    create_directories(test_dir / "a/c/d");
    current_path(test_dir / "a");
    create_directory_symlink("c/d", "b");
    save_string_file("name.txt", "Windows");
    save_string_file("c/name.txt", "POSIX");
    current_path(test_dir);
    std::string s;
    load_string_file("a/b/../name.txt", s);
    cout << s << endl;

    return 0;
}