[dicts.h] Type: Dictionary Iterator
#include "standard.h"
The Type
The dictionary iterator provides sequentiell, platform-independant access to
a specified part of the file system.
Supported platforms are Unix and Windows.
DII
| Abstract dictionary iterator type
|
Create & Drop
DII DII_make
(
c_string PathName, c_string Pattern,
c_bool recursive, c_bool skipErr
)
| creates a ['recursive'] dictionary iterator for
directory 'PathName' and file 'Pattern'
'skipErr' --> error message on open failure, otherwise the program aborts
|
void DII_drop(DII dii)
| drops dictionary iterator 'dii'
|
Dictionary iterator access
c_bool DII_empty(DII dii)
| empty dictionary iterator ?
|
void DII_next(DII dii)
| next dictionary entry
|
c_bool DII_isFile(DII dii)
| dictionary entry = file ?
|
c_bool DII_isDir(DII dii)
| dictionary entry = directory ?
|
c_bool DII_isCDev(DII dii)
| dictionary entry = character device ?
|
c_bool DII_isBDev(DII dii)
| dictionary entry = block device ?
|
c_bool DII_isFifo(DII dii)
| dictionary entry = FIFO ?
|
c_string DII_get_file(DII dii)
| filename of dictionary entry; allocs memory
|
c_string DII_get_base(DII dii)
| basename of dictionary entry; allocs memory
|
c_string DII_get_ext(DII dii)
| extension of dictionary entry; allocs memory
|
c_string DII_get_path(DII dii)
| path of dictionary entry; allocs memory
|
Convenient iterator macros
#define DII_FORALL(dii,Path,Pattern) \
for (dii = DII_make(Path,Pattern,C_False,C_False); \
DII_empty(dii)?DII_drop(dii),C_False:C_True; DII_next(dii))
#define DII_FORALL_R(dii,Path,Pattern) \
for (dii = DII_make(Path,Pattern,C_True,C_False); \
DII_empty(dii)?DII_drop(dii),C_False:C_True; DII_next(dii))
#define DII_SFORALL(dii,Path,Pattern) \
for (dii = DII_make(Path,Pattern,C_False,C_True); \
DII_empty(dii)?DII_drop(dii),C_False:C_True; DII_next(dii))
#define DII_SFORALL_R(dii,Path,Pattern) \
for (dii = DII_make(Path,Pattern,C_True,C_True); \
DII_empty(dii)?DII_drop(dii),C_False:C_True; DII_next(dii))