Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

rs::file Namespace Reference

Files and Directories. More...


Compounds

class  BinaryFile
 a binary file (with simple compression). More...

class  BinaryStoreable
 base class for types knowing how to be (re)stored. More...

class  Directory
 class containing all or some files of a directory. More...

class  InputFile
 read textfiles line per line and provide error raising. More...


Typedefs

typedef std::map< std::string,
Directory
Directories
 Contains several Directory's. More...

typedef bool(* predicate )(const std::string &dirname, const char *filename, const struct stat &filestat)
 Predicate for files/directories. More...


Enumerations

enum  BinaryFileType { BF_INPUT, BF_OUTPUT }
 @brief type of BinaryFile (input or output). More...


Functions

template<class T> void put_binary (const T &t, BinaryFile &file)
 write any type to a binary output file. More...

template<class T> void get_binary (T &t, BinaryFile &file)
 read any type from a binary input file. More...

template<> void put_binary< std::string > (const std::string &s, BinaryFile &file)
template<> void get_binary< std::string > (std::string &s, BinaryFile &file)
string catDF (const string &directory, const string &filename)
void scanDir_internal (Directories &dirs, const string &rootdir, bool recurse, bool follow_links, predicate takeFile, predicate recurseDirectory, ostream *display, set< string > &visited_directories)
void scanDir (Directories &dirs, const string &rootdir, bool recurse, bool follow_links, predicate takeFile, predicate recurseDirectory, ostream *display)
void scanDir (Directories &dirs, const string &rootdir, bool recurse, bool follow_links, predicate takeFile, ostream *display)
void saveDirectories (const Directories &dirs, BinaryFile &out)
 save directory container into a file. More...

void loadDirectories (Directories &dirs, BinaryFile &in)
 load directory container from a file. More...

string canonicalize (const string &filename, bool to_win32)
size_t lastPathSeperator (const string &filename)
string extractDirectory (const string &fullpath)
string extractFilename (const string &fullpath)
void backslashes2slashes (string &filename)
 converts all backslashes to slashes. More...

bool isLink (const string &file, string &target)
std::string catDF (const std::string &directory, const std::string &filename)
 concatenate directory with filename. More...

void scanDir (Directories &dirs, const std::string &rootdir, bool recurse, bool follow_links, predicate takeFile, predicate recurseDirectory, std::ostream *display)
 scan content of directories (recursion controllable). More...

void scanDir (Directories &dirs, const std::string &rootdir, bool recurse, bool follow_links, predicate takeFile, std::ostream *display)
 scan content of directories. More...

std::string canonicalize (const std::string &filename, bool to_win32=(DIR_SEPARATOR=='\\'))
 create canonical filename. More...

bool is_canonical (const std::string &filename)
 test if filename is canonical. More...

std::string extractDirectory (const std::string &fullpath)
 extract directory part from filename. More...

std::string extractFilename (const std::string &fullpath)
 remove directory part from a filename. More...

bool isLink (const std::string &file, std::string &target)
 test if a file is a windows link (*.lnk). More...


Variables

char DIR_SEPARATOR = '/'
 contains the separator used in full pathnames. More...


Detailed Description

Files and Directories.

See also:
rs::posix for low-level file system operations


Typedef Documentation

typedef std::map<std::string, Directory> Directories
 

Contains several Directory's.

Normally Directories should be initialized by using scanDir()

Definition at line 119 of file Directory.h.

Referenced by loadDirectories(), saveDirectories(), scanDir(), and scanDir_internal().

typedef bool(* predicate)(const std::string& dirname, const char *filename, const struct stat& filestat)
 

Predicate for files/directories.

Definition at line 122 of file Directory.h.

Referenced by scanDir(), and scanDir_internal().


Enumeration Type Documentation

enum BinaryFileType
 

@brief type of BinaryFile (input or output).

Enumeration values:
BF_INPUT 
BF_OUTPUT 

Definition at line 35 of file BinFile.h.

Referenced by BinaryFile::BinaryFile().


Function Documentation

void put_binary const T &    t,
BinaryFile   file
[inline]
 

write any type to a binary output file.

Parameters:
t  type to be written
file  file to be written to

Definition at line 240 of file BinFile.h.

Referenced by put_binary(), and Directory::save().

void get_binary T &    t,
BinaryFile   file
[inline]
 

read any type from a binary input file.

Parameters:
t  type to be read
file  file to be read from

Definition at line 248 of file BinFile.h.

Referenced by get_binary(), and Directory::load().

void put_binary< std::string > const std::string &    s,
BinaryFile   file
[inline]
 

void get_binary< std::string > std::string &    s,
BinaryFile   file
[inline]
 

string catDF const string &    directory,
const string &    filename
 

Definition at line 125 of file Directory.cpp.

Referenced by Directory::fullPath(), and scanDir_internal().

void scanDir_internal Directories   dirs,
const string &    rootdir,
bool    recurse,
bool    follow_links,
predicate    takeFile,
predicate    recurseDirectory,
ostream *    display,
set< string > &    visited_directories
 

Definition at line 132 of file Directory.cpp.

Referenced by scanDir().

void scanDir Directories   dirs,
const string &    rootdir,
bool    recurse,
bool    follow_links,
predicate    takeFile,
predicate    recurseDirectory,
ostream *    display
 

Definition at line 200 of file Directory.cpp.

Referenced by scanDir(), and scanDir_internal().

void scanDir Directories   dirs,
const string &    rootdir,
bool    recurse,
bool    follow_links,
predicate    takeFile,
ostream *    display
 

Definition at line 222 of file Directory.cpp.

void saveDirectories const Directories   dirs,
BinaryFile   out
 

save directory container into a file.

Definition at line 234 of file Directory.cpp.

void loadDirectories Directories   dirs,
BinaryFile   in
 

load directory container from a file.

Definition at line 250 of file Directory.cpp.

string canonicalize const string &    filename,
bool    to_win32
 

Definition at line 272 of file Directory.cpp.

Referenced by is_canonical(), and isLink().

size_t lastPathSeperator const string &    filename [inline]
 

Definition at line 312 of file Directory.cpp.

Referenced by extractDirectory(), and extractFilename().

string extractDirectory const string &    fullpath
 

Definition at line 319 of file Directory.cpp.

Referenced by scanDir_internal().

string extractFilename const string &    fullpath
 

Definition at line 331 of file Directory.cpp.

Referenced by scanDir_internal().

void backslashes2slashes std::string &    filename
 

converts all backslashes to slashes.

Definition at line 344 of file Directory.cpp.

bool isLink const string &    file,
string &    target
 

Definition at line 355 of file Directory.cpp.

Referenced by scanDir_internal().

std::string catDF const std::string &    directory,
const std::string &    filename
 

concatenate directory with filename.

Parameters:
directory  name of directory
filename  name of file
Returns:
concatenated name

void scanDir Directories   dirs,
const std::string &    rootdir,
bool    recurse,
bool    follow_links,
predicate    takeFile,
predicate    recurseDirectory,
std::ostream *    display
 

scan content of directories (recursion controllable).

Here you can influence the way how recursion is done.

Parameters:
dirs  scanned directories are added here
rootdir  path of root directory
recurse  if true then recurse subdirs
follow_links  if true then follow links (not implemented yet!)
takeFile  callback returning true if file should be added
recurseDirectory  callback returning true if directory should be scanned recursive
display  if non-NULL: stream where progress info should be displayed

void scanDir Directories   dirs,
const std::string &    rootdir,
bool    recurse,
bool    follow_links,
predicate    takeFile,
std::ostream *    display
 

scan content of directories.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

std::string canonicalize const std::string &    filename,
bool    to_win32 = (DIR_SEPARATOR=='\\')
 

create canonical filename.

Parameters:
filename  relative filename
to_win32  if true the filename is converted to WINDOWS path format (defaults to true if DIR_SEPARATOR == \)
Returns:
the absolute (canonical) version of filename

bool is_canonical const std::string &    filename [inline]
 

test if filename is canonical.

Returns:
true if filename is canonical

Definition at line 170 of file Directory.h.

std::string extractDirectory const std::string &    fullpath
 

extract directory part from filename.

Parameters:
fullpath  full pathname
Returns:
the directory part of fullpath

std::string extractFilename const std::string &    fullpath
 

remove directory part from a filename.

Parameters:
fullpath  full pathname
Returns:
the filename of @ fullpath w/o directory information

bool isLink const std::string &    file,
std::string &    target
 

test if a file is a windows link (*.lnk).

Parameters:
file  filename of the potential link
target  the path of the link target is saved here (only if true is returned)
Returns:
true if file is a link


Variable Documentation

char DIR_SEPARATOR = '/'
 

contains the separator used in full pathnames.

Definition at line 119 of file Directory.cpp.

Referenced by catDF(), and Directory::fullPath().


Contact me in case of errors or questions.
This documentation is powered by Doxygen.
(C) 2000-2002 Doxygen