Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
vul_file_iterator Class Reference

Iterate through directories and/or "glob" patterns (*. More...

#include <vul_file_iterator.h>

List of all members.

Public Member Functions

 vul_file_iterator ()
 vul_file_iterator (char const *glob)
 Initialize, and scan to get first file from "glob".
 vul_file_iterator (vcl_string const &glob)
 Initialize, and scan to get first file from "glob".
 ~vul_file_iterator ()
 operator safe_bool () const
 Ask if done.
bool operator! () const
 Inverse boolean value.
char const * operator() ()
 Return the currently pointed-to pathname.
char const * filename ()
 Return the non-directory part of the current pathname.
char const * match (int i)
 Return the match for the i'th glob wildcard character (* or ?).
vul_file_iteratoroperator++ ()
 Increment to the next file.
void reset (char const *glob)
 Run a new match.

Protected Attributes

vul_file_iterator_datap

Private Member Functions

vul_file_iterator operator++ (int)

Private Attributes

 VCL_SAFE_BOOL_DEFINE

Detailed Description

Iterate through directories and/or "glob" patterns (*.

*). It is efficient to use

   for (vul_file_iterator fn="/dir/*"; fn; ++fn) {
     ... use fn() as filename
   }

simply to list the contents of a directory. If you really want just the *.ext files, it is efficient to use

   for (vul_file_iterator fn="/dir/*.ext"; fn; ++fn) {
     ... use fn() as filename
   }

rather than opendir/glob/etc.

Valid glob patterns are unix-like - '?' matches precisely one character '*' matches any sequence (including empty), [abc] matches either 'a' or 'b' or 'c'

Note:
There is no implicit ordering of the files in a directory; the order is OS-dependent and is not guaranteed by this class. You may wish, therefore, to store the filenames returned and sort them yourself, if you want to process files in (for example) alphanumeric order.

Definition at line 47 of file vul_file_iterator.h.


Constructor & Destructor Documentation

vul_file_iterator::vul_file_iterator ( ) [inline]

Definition at line 52 of file vul_file_iterator.h.

vul_file_iterator::vul_file_iterator ( char const *  glob)

Initialize, and scan to get first file from "glob".

Definition at line 259 of file vul_file_iterator.cxx.

vul_file_iterator::vul_file_iterator ( vcl_string const &  glob)

Initialize, and scan to get first file from "glob".

Definition at line 265 of file vul_file_iterator.cxx.

vul_file_iterator::~vul_file_iterator ( )

Definition at line 271 of file vul_file_iterator.cxx.


Member Function Documentation

char const * vul_file_iterator::filename ( )

Return the non-directory part of the current pathname.

Definition at line 287 of file vul_file_iterator.cxx.

char const* vul_file_iterator::match ( int  i)

Return the match for the i'th glob wildcard character (* or ?).

Uses the most recent glob result.

vul_file_iterator::operator vul_file_iterator::safe_bool ( ) const

Ask if done.

Won't spin the disk

Definition at line 292 of file vul_file_iterator.cxx.

bool vul_file_iterator::operator! ( ) const

Inverse boolean value.

Definition at line 297 of file vul_file_iterator.cxx.

char const * vul_file_iterator::operator() ( )

Return the currently pointed-to pathname.

Won't spin the disk

Definition at line 282 of file vul_file_iterator.cxx.

vul_file_iterator & vul_file_iterator::operator++ ( )

Increment to the next file.

Will spin the disk

Definition at line 302 of file vul_file_iterator.cxx.

vul_file_iterator vul_file_iterator::operator++ ( int  ) [inline, private]

Definition at line 92 of file vul_file_iterator.h.

void vul_file_iterator::reset ( char const *  glob)

Run a new match.

Definition at line 276 of file vul_file_iterator.cxx.


Member Data Documentation

Definition at line 88 of file vul_file_iterator.h.

Definition at line 49 of file vul_file_iterator.h.


The documentation for this class was generated from the following files: