
On Fri, Apr 20, 2012 at 5:24 AM, Thorsten Ottosen <thorsten.ottosen@dezide.com> wrote:
On 20-04-2012 10:12, Thorsten Ottosen wrote:
On 19-04-2012 17:29, Beman Dawes wrote:
then we could add
boost::iterator_range<...> boost::directory_range( const boost::path& ) boost::iterator_range<...> boost::recursive_directory_range( const boost::path& )
Then, if we wanted to make a really user-friendly interface, we could add
boost::iterator_range<...> boost::directory_range( const boost::path&, const boost::path& extension )
support for multiple extensions or reguar expression would be cool, e.g.
boost::directory_range( "some_path/", "(.txt|.doc|.jpg)" )
Cool! But:
and support for the reverse sitution
boost::iterator_range<...> boost::directory_range( const boost::path&, const boost::regex& toExclude )
is even better:-)
Especially for recursive iteration, it is useful to skip entire directories.
Mind-blowing! Your suggestion is getting very close to a solution for the general directory search problem I've wrestled with for years. What we would really like is to be able to apply a series of filters, some of which apply to directories, some to files. Examples are your include|exclude regex filters, applicable to directories|files|both. Another filter might be a file filter <=|>= a given size. Dates and permissions filters would also be useful. Perhaps user supplied filters. And how about filters applied to the contents of files?
Remark: such support is probably most naturally added to the underying iterator classes by storing some boost::optional<> variables.
I'll need to think about that - it will take me a while to digest this. Thanks, --Beman