$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] [Filesystem] There must be a better way to do path decomposition
From: Ramon F Herrera (ramon_at_[hidden])
Date: 2011-08-03 12:16:51
This code at least works:
     string directory_path(argv[1]);
     path p(directory_path);
     ostringstream component;
     string lastComponent;
     for (path::iterator it = p.begin(); it != p.end(); it++) {
         component.str("");    // Hack, to be replaced by better way
         component << *it;     // to grab `*it' in a string
         lastComponent = component.str();
     }
     lastComponent = lastComponent.substr(1, lastComponent.size()-2);
According to the documentation examples, the item pointed to by `*it' is 
of the following type:
path::iterator::value_type is path::string_type, and iteration treats 
path as a container of filenames.
I tried to capture `*it' in a string and in a string_type but the 
compiler does not like the '=' operator.
TIA,
-RFH