fileName Class Reference

A class for handling file names. More...

Inheritance diagram for fileName:
Collaboration diagram for fileName:

Public Member Functions

 fileName ()
 Construct null. More...
 
 fileName (const fileName &)
 Copy constructor. More...
 
 fileName (fileName &&)
 Move constructor. More...
 
 fileName (const word &)
 Copy constructor of word. More...
 
 fileName (const string &)
 Copy constructor of string. More...
 
 fileName (const std::string &)
 Copy constructor of std::string. More...
 
 fileName (const char *)
 Copy constructor of character array. More...
 
 fileName (const wordList &)
 Construct by concatenating elements of wordList separated by '/'. More...
 
 fileName (Istream &)
 Construct from Istream. More...
 
bool clean ()
 Cleanup file name. More...
 
fileName clean () const
 Cleanup file name. More...
 
fileType type (const bool checkVariants=true, const bool followLink=true) const
 Return the file type: file, directory, undefined or. More...
 
bool isName () const
 Return true if file name is a name without a path. More...
 
bool hasPath () const
 Return true if file name has a path. More...
 
bool isAbsolute () const
 Return true if file name is absolute. More...
 
fileNametoAbsolute ()
 Convert from relative to absolute. More...
 
word name () const
 Return file name (part beyond last /) More...
 
string caseName () const
 Return file name (part beyond last /), substitute for FOAM_CASE. More...
 
word name (const bool noExt) const
 Return file name, optionally without extension. More...
 
fileName path () const
 Return directory path name (part before last /) More...
 
fileName lessExt () const
 Return file name without extension (part before last .) More...
 
word ext () const
 Return file name extension (part after last .) More...
 
wordList components (const char delimiter='/') const
 Return path components as wordList. More...
 
word component (const size_type, const char delimiter='/') const
 Return a single component of the path. More...
 
void operator= (const fileName &)
 
void operator= (fileName &&)
 
void operator= (const word &)
 
void operator= (const string &)
 
void operator= (const std::string &)
 
void operator= (const char *)
 
- Public Member Functions inherited from string
 string ()
 Construct null. More...
 
 string (const std::string &)
 Construct from std::string. More...
 
 string (const string &)
 Copy constructor. More...
 
 string (string &&)
 Move constructor. More...
 
 string (const char *)
 Construct as copy of character array. More...
 
 string (const UList< char > &)
 Construct as copy of UList of character. More...
 
 string (const char *, const size_type)
 Construct as copy of specified number of characters. More...
 
 string (const char)
 Construct from a single character. More...
 
 string (const size_type, const char)
 Construct from copies of a single character. More...
 
 string (Istream &)
 Construct from Istream. More...
 
size_type count (const char) const
 Count and return the number of a given character in the string. More...
 
bool match (const std::string &) const
 True when strings match literally. More...
 
stringreplace (const string &oldStr, const string &newStr, size_type start=0)
 Replace first occurrence of sub-string oldStr with newStr. More...
 
stringreplaceAll (const string &oldStr, const string &newStr, size_type start=0)
 Replace all occurrences of sub-string oldStr with newStr. More...
 
stringexpand (const bool allowEmpty=false)
 Expand initial tildes and all occurrences of environment variables. More...
 
bool removeRepeated (const char)
 Remove repeated characters returning true if string changed. More...
 
string removeRepeated (const char) const
 Return string with repeated characters removed. More...
 
bool removeTrailing (const char)
 Remove trailing character returning true if string changed. More...
 
string removeTrailing (const char) const
 Return string with trailing character removed. More...
 
bool removeTrailing (const string &)
 Remove trailing string returning true if string changed. More...
 
string removeTrailing (const string &) const
 Return string with trailing string removed. More...
 
void strip (const string &)
 Strip characters from the start and end of the string. More...
 
string operator() (const size_type i, const size_type n) const
 Return the sub-string from the i-th character for n characters. More...
 
string operator() (const size_type n) const
 Return the sub-string from the first character for n characters. More...
 
void operator= (const string &)
 
void operator= (string &&)
 
template<class String >
Foam::string quotemeta (const string &str, const char quote)
 

Static Public Member Functions

static bool valid (char)
 Is this character valid for a fileName? More...
 
- Static Public Member Functions inherited from string
template<class String >
static bool valid (const string &)
 Is this string type valid? More...
 
template<class String >
static bool meta (const string &, const char quote='\\')
 Does this string have particular meta-characters? More...
 
template<class String >
static bool stripInvalid (string &)
 Strip invalid characters from the given string. More...
 
template<class String >
static String validate (const string &)
 Return a valid String from the given string. More...
 
template<class String >
static string quotemeta (const string &, const char quote='\\')
 Return a String with quoted meta-characters from the given string. More...
 

Static Public Attributes

static const char *const typeName = "fileName"
 
static int debug
 
static const fileName null
 An empty fileName. More...
 
- Static Public Attributes inherited from string
static const char *const typeName = "string"
 
static int debug
 
static const string null
 An empty string. More...
 

Friends

Istreamoperator>> (Istream &, fileName &)
 
Ostreamoperator<< (Ostream &, const fileName &)
 

Detailed Description

A class for handling file names.

A fileName is a string of characters without whitespace or quotes. A fileName can be

  • constructed from a char*, a string or a word
  • concatenated by adding a '/' separator
  • decomposed into the path, name or component list
  • interrogated for type and access mode

The string::expand() method expands environment variables, etc,

Source files

Definition at line 79 of file fileName.H.

Constructor & Destructor Documentation

◆ fileName() [1/9]

fileName ( )
inline

Construct null.

Definition at line 52 of file fileNameI.H.

Referenced by Foam::operator/().

Here is the caller graph for this function:

◆ fileName() [2/9]

fileName ( const fileName fn)
inline

Copy constructor.

Definition at line 58 of file fileNameI.H.

◆ fileName() [3/9]

fileName ( fileName &&  fn)
inline

Move constructor.

Definition at line 64 of file fileNameI.H.

◆ fileName() [4/9]

fileName ( const word w)
inline

Copy constructor of word.

Definition at line 70 of file fileNameI.H.

◆ fileName() [5/9]

fileName ( const string str)
inline

Copy constructor of string.

Definition at line 76 of file fileNameI.H.

◆ fileName() [6/9]

fileName ( const std::string &  str)
inline

Copy constructor of std::string.

Definition at line 84 of file fileNameI.H.

◆ fileName() [7/9]

fileName ( const char *  str)
inline

Copy constructor of character array.

Definition at line 92 of file fileNameI.H.

◆ fileName() [8/9]

fileName ( const wordList lst)
explicit

Construct by concatenating elements of wordList separated by '/'.

Definition at line 40 of file fileName.C.

References forAll, fileName::operator=(), and fileName::type().

Here is the call graph for this function:

◆ fileName() [9/9]

fileName ( Istream is)

Construct from Istream.

Definition at line 31 of file fileNameIO.C.

Member Function Documentation

◆ valid()

bool valid ( char  c)
inlinestatic

Is this character valid for a fileName?

Definition at line 102 of file fileNameI.H.

References Foam::isspace().

Here is the call graph for this function:

◆ clean() [1/2]

bool clean ( )

Cleanup file name.

Removes repeated slashes /abc////def –> /abc/def

Removes '/./' /abc/def/./ghi/. –> /abc/def/./ghi abc/def/./ –> abc/def

Removes '/../' /abc/def/../ghi/jkl/nmo/.. –> /abc/ghi/jkl abc/../def/ghi/../jkl –> abc/../def/jkl

Removes trailing '/'

Definition at line 93 of file fileName.C.

References Foam::constant::universal::c, Foam::constant::physicoChemical::c1, and resize().

Referenced by fileName::clean(), argList::postProcess(), and fileName::toAbsolute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clean() [2/2]

Foam::fileName clean ( ) const

Cleanup file name.

eg, remove repeated slashes, etc.

Definition at line 187 of file fileName.C.

References fileName::clean().

Here is the call graph for this function:

◆ type()

Foam::fileType type ( const bool  checkVariants = true,
const bool  followLink = true 
) const

Return the file type: file, directory, undefined or.

link (only if followLink=false)

Definition at line 52 of file fileName.C.

References Foam::type().

Referenced by Foam::cp(), fileName::fileName(), Foam::mv(), and Foam::rmDir().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isName()

bool isName ( ) const

Return true if file name is a name without a path.

i.e. does not contain a '/'

Definition at line 61 of file fileName.C.

Referenced by Foam::systemDictIO().

Here is the caller graph for this function:

◆ hasPath()

bool hasPath ( ) const

Return true if file name has a path.

i.e. contains a '/'

Definition at line 67 of file fileName.C.

◆ isAbsolute()

bool isAbsolute ( ) const

◆ toAbsolute()

Foam::fileName & toAbsolute ( )

Convert from relative to absolute.

Definition at line 79 of file fileName.C.

References fileName::clean(), Foam::cwd(), f(), and fileName::isAbsolute().

Referenced by decompositionModel::selectIO().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ name() [1/2]

◆ caseName()

Foam::string caseName ( ) const

Return file name (part beyond last /), substitute for FOAM_CASE.

Definition at line 210 of file fileName.C.

References Foam::getEnv(), string::replace(), and string::string().

Referenced by IOobject::caseName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ name() [2/2]

Foam::word name ( const bool  noExt) const

Return file name, optionally without extension.

Definition at line 229 of file fileName.C.

References Foam::dot(), and fileName::name().

Here is the call graph for this function:

◆ path()

Foam::fileName path ( ) const

Return directory path name (part before last /)

Behaviour compared to /usr/bin/dirname: input path() dirname ----- ------ ------- "foo" "." "." "/foo" "/" "foo" "foo/bar" "foo" "foo" "/foo/bar" "/foo" "/foo" "/foo/bar/" "/foo/bar/" "/foo"

Definition at line 265 of file fileName.C.

Referenced by fileMonitorWatcher::addWatch(), timeVaryingMappedFixedValuePointPatchField< Type >::checkTable(), dynamicCode::copyOrCreateFiles(), Foam::cp(), dynamicCode::createMakeFiles(), dynamicCode::createMakeOptions(), includeEntry::execute(), Foam::mkDir(), argList::postProcess(), fileOperation::processorsPath(), extendedEdgeMeshFormat::read(), edgeMeshFormat::read(), streamlines::write(), dynamicCode::writeDigest(), triSurfaceMesh::writeObject(), fileOperation::writeObject(), and distributedTriSurfaceMesh::writeObject().

Here is the caller graph for this function:

◆ lessExt()

◆ ext()

◆ components()

Foam::wordList components ( const char  delimiter = '/') const

Return path components as wordList.

Behaviour: Input components() ----- ------ "foo" 1("foo") "/foo" 1("foo") "foo/bar" 2("foo", "bar") "/foo/bar" 2("foo", "bar") "/foo/bar/" 2("foo", "bar")

Definition at line 314 of file fileName.C.

References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), and fileName::component().

Referenced by fileName::component(), and Foam::cp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ component()

Foam::word component ( const size_type  cmpt,
const char  delimiter = '/' 
) const

Return a single component of the path.

Definition at line 342 of file fileName.C.

References fileName::components().

Referenced by fileName::components(), and Foam::cp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [1/6]

void operator= ( const fileName str)

Definition at line 353 of file fileName.C.

References string::operator=().

Referenced by fileName::fileName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [2/6]

void operator= ( fileName &&  str)

Definition at line 359 of file fileName.C.

References string::operator=().

Here is the call graph for this function:

◆ operator=() [3/6]

void operator= ( const word str)

Definition at line 365 of file fileName.C.

References string::operator=().

Here is the call graph for this function:

◆ operator=() [4/6]

void operator= ( const string str)

Definition at line 371 of file fileName.C.

References string::operator=().

Here is the call graph for this function:

◆ operator=() [5/6]

void operator= ( const std::string &  str)

Definition at line 378 of file fileName.C.

References string::operator=().

Here is the call graph for this function:

◆ operator=() [6/6]

void operator= ( const char *  str)

Definition at line 385 of file fileName.C.

References string::operator=().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator>>

Istream& operator>> ( Istream ,
fileName  
)
friend

◆ operator<<

Ostream& operator<< ( Ostream ,
const fileName  
)
friend

Member Data Documentation

◆ typeName

const char *const typeName = "fileName"
static

Definition at line 93 of file fileName.H.

◆ debug

int debug
static

Definition at line 94 of file fileName.H.

◆ null


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