FileName Class Reference

Specification of a valid Ensight file-name. More...

Inheritance diagram for FileName:
Collaboration diagram for FileName:

Public Member Functions

 FileName (const FileName &)=default
 Copy construct. More...
 
 FileName (FileName &&)=default
 Move construct. More...
 
 FileName (const char *s)
 Construct as copy of character array. More...
 
 FileName (const std::string &s)
 Copy construct from std::string. More...
 
void stripInvalid ()
 Strip invalid characters. More...
 
void operator= (const fileName &)=delete
 
void operator= (const word &)=delete
 
void operator= (const string &)=delete
 
void operator= (const std::string &)=delete
 
void operator= (const char *)=delete
 
- Public Member Functions inherited from fileName
 fileName ()=default
 Default construct. More...
 
 fileName (const fileName &)=default
 Copy construct. More...
 
 fileName (fileName &&)=default
 Move construct. More...
 
 fileName (const word &s)
 Copy construct from word. More...
 
 fileName (word &&s)
 Move construct from word. More...
 
 fileName (const string &s, bool doStrip=true)
 Copy construct from string. More...
 
 fileName (string &&s, bool doStrip=true)
 Move construct from string. More...
 
 fileName (const std::string &s, bool doStrip=true)
 Copy construct from std::string. More...
 
 fileName (std::string &&s, bool doStrip=true)
 Move construct from std::string. More...
 
 fileName (const char *s, bool doStrip=true)
 Copy construct from character array. More...
 
 fileName (const UList< word > &list)
 Construct by concatenating elements of wordList separated by '/'. More...
 
 fileName (std::initializer_list< word > list)
 Construct by concatenating words separated by '/'. More...
 
 fileName (Istream &is)
 Construct from Istream. More...
 
bool assign (const token &tok)
 Assign from word or string token. More...
 
void stripInvalid ()
 Strip invalid characters. More...
 
bool clean ()
 Cleanup filename (inplace) More...
 
Type type (bool followLink=true, bool checkGzip=false) const
 Return the directory entry type: UNDEFINED, FILE, DIRECTORY (or SYMLINK). More...
 
bool isAbsolute () const
 Return true if filename is absolute, which means it starts with a '/' or '\' or (windows-only) with a filesystem-root. More...
 
fileNametoAbsolute ()
 Convert from relative to absolute. More...
 
bool isBackup () const
 Return true if file name ends with "~", ".bak", ".old", ".save". More...
 
fileName path () const
 Return directory path name (part before last /) More...
 
bool has_path () const
 True if it contains a '/' character. More...
 
word name () const
 Return basename (part beyond last /), including its extension. More...
 
fileNamereplace_name (const word &newName)
 Replace basename (part beyond last /) with a new name. More...
 
word stem () const
 Return basename, without extension. More...
 
word ext () const
 Return file name extension (part after last .) More...
 
fileNameext (const word &ending)
 Append a '.' and the ending, and return the object. More...
 
fileNamereplace_ext (const word &ending)
 Remove extension (if any) and append a new one. More...
 
fileName lessExt () const
 Return file name without extension (part before last .) More...
 
fileName relative (const fileName &parent, const bool caseTag=false) const
 Return a relative name by stripping off the parent directory where possible. More...
 
wordList components (const char delim='/') const
 Return path components as wordList. More...
 
word component (const size_type cmpt, const char delim='/') const
 Return a single component of the path or empty if out of range. More...
 
fileNameoperator= (const fileName &str)
 Copy assignment, no character validation required. More...
 
fileNameoperator= (fileName &&str)
 Move assignment, no character validation required. More...
 
fileNameoperator= (const word &str)
 Copy assignment, no character validation required. More...
 
fileNameoperator= (word &&str)
 Move assignment, no character validation required. More...
 
fileNameoperator= (const string &str)
 Copy assignment, stripping invalid characters. More...
 
fileNameoperator= (string &&str)
 Move assignment, stripping invalid characters. More...
 
fileNameoperator= (const std::string &str)
 Copy assignment, stripping invalid characters. More...
 
fileNameoperator= (std::string &&str)
 Move assignment, stripping invalid characters. More...
 
fileNameoperator= (const char *str)
 Copy, stripping invalid characters. More...
 
fileNameoperator/= (const string &other)
 Append a path element with '/' separator. More...
 
bool hasPath () const
 Same as has_path() More...
 
bool removePath ()
 Same as remove_path() More...
 
bool hasExt () const
 Same as has_ext() More...
 
bool hasExt (const std::string &s) const
 Same as has_ext() More...
 
bool removeExt ()
 Same as remove_ext() More...
 
word nameLessExt () const
 Same as stem() More...
 
word name (const bool noExt) const
 Deprecated(2017-03) return basename, optionally without extension. More...
 
bool remove_path ()
 Remove leading path, return true if string changed. More...
 
bool remove_ext ()
 Remove extension, returning true if string changed. More...
 
bool has_ext () const
 Various checks for extensions. More...
 
bool has_ext (const char *ending) const
 Various checks for extensions. More...
 
bool has_ext (const std::string &ending) const
 Various checks for extensions. More...
 
bool has_ext (const wordRe &ending) const
 Various checks for extensions. More...
 
- Public Member Functions inherited from string
 string ()=default
 Default construct. More...
 
 string (const std::string &str)
 Copy construct from std::string. More...
 
 string (std::string &&str)
 Move construct from std::string. More...
 
 string (const char *str)
 Construct as copy of character array. More...
 
 string (const char *str, const size_type len)
 Construct as copy with a maximum number of characters. More...
 
 string (const char c)
 Construct from a single character. More...
 
 string (const size_type len, const char c)
 Construct fill copies of a single character. More...
 
 string (Istream &is)
 Construct from Istream. More...
 
bool match (const std::string &text) const
 Test for equality. More...
 
stringreplace (const std::string &s1, const std::string &s2, size_type pos=0)
 Replace first occurrence of sub-string s1 with s2, beginning at pos. More...
 
stringreplaceAll (const std::string &s1, const std::string &s2, size_type pos=0)
 Replace all occurrences of sub-string s1 with s2, beginning at pos in the string. More...
 
stringreplaceAny (const std::string &s1, const char c2, size_type pos=0)
 Replace any occurrence of s1 characters with c2, beginning at pos in the string. More...
 
stringexpand (const bool allowEmpty=false)
 Inplace expand initial tags, tildes, and all occurrences of environment variables as per stringOps::expand. More...
 
bool removeRepeated (const char character)
 Remove repeated characters. More...
 
bool removeStart (const std::string &text)
 Remove the given text from the start of the string. More...
 
bool removeStart (const char c)
 Remove leading character, unless string is a single character. More...
 
bool removeEnd (const std::string &text)
 Remove the given text from the end of the string. More...
 
bool removeEnd (const char c)
 Remove trailing character, unless string is a single character. More...
 
void swap (std::string &str)
 Swap contents. Self-swapping is a no-op. More...
 
bool operator() (const std::string &text) const
 Test for equality. Allows use as a predicate. More...
 
bool contains (char c) const noexcept
 True if string contains given character (cf. C++23) More...
 
bool contains (const std::string &s) const noexcept
 True if string contains given [string view] substring (cf. C++23) More...
 
bool contains (const char *s) const
 True if string contains given substring (cf. C++23) More...
 
bool starts_with (char c) const
 True if string starts with given character (cf. C++20) More...
 
bool starts_with (const std::string &s) const
 True if string starts with given [string view] prefix (C++20) More...
 
bool starts_with (const char *s) const
 True if string starts with given prefix (C++20) More...
 
bool ends_with (char c) const
 True if string ends with given character (cf. C++20) More...
 
bool ends_with (const std::string &s) const
 True if string ends with given [string view] suffix (cf. C++20) More...
 
bool ends_with (const char *s) const
 True if string ends with given suffix (cf. C++20) More...
 
size_type count (const char c) const
 Count the number of occurrences of the specified character in the string. More...
 
bool startsWith (const std::string &s) const
 Deprecated(2019-11) More...
 
bool endsWith (const std::string &s) const
 Deprecated(2019-11) More...
 
bool removeTrailing (const char c)
 Deprecated(2019-11) More...
 

Static Public Member Functions

static bool valid (char c)
 Is this character valid for an ensight file-name. More...
 
- Static Public Member Functions inherited from fileName
static bool valid (char c)
 Is this character valid for a fileName? More...
 
static fileName validate (const std::string &, const bool doClean=true)
 Construct fileName without invalid characters, possibly applying other transformations such as changing the path separator, removing duplicate or trailing slashes, etc. More...
 
static fileName concat (const std::string &s1, const std::string &s2, const char delim='/')
 Join two strings with a path separator ('/' by default). More...
 
static bool equals (const std::string &s1, const std::string &s2)
 This is a specialized (possibly slower) version of compare() that ignores duplicate or trailing slashes. More...
 
static bool clean (std::string &str)
 Cleanup filename string, possibly applies other transformations such as changing the path separator etc. More...
 
static bool isAbsolute (const std::string &str)
 Return true if filename starts with a '/' or '\' or (windows-only) with a filesystem-root. More...
 
static bool isBackup (const std::string &str)
 Return true if string ends with "~", ".bak", ".old", ".save". More...
 
static std::string path (const std::string &str)
 Return directory path name (part before last /) More...
 
static std::string name (const std::string &str)
 Return basename (part beyond last /), including its extension. More...
 
static std::string stem (const std::string &str)
 Return the basename, without extension. More...
 
static std::string nameLessExt (const std::string &s)
 Same as stem() More...
 
- Static Public Member Functions inherited from string
static std::string::size_type length (const char *s)
 Length of the character sequence (with nullptr protection) More...
 
static std::string::size_type length (const std::string &s)
 The length of the string. More...
 
template<class StringType >
static bool valid (const std::string &str)
 Does the string contain valid characters only? More...
 
template<class StringType >
static bool stripInvalid (std::string &str)
 Strip invalid characters from the given string. More...
 
template<class StringType >
static StringType validate (const std::string &str)
 Return a valid String from the given string. More...
 

Additional Inherited Members

- Public Types inherited from fileName
enum  Type {
  UNDEFINED = 0, FILE = 1, DIRECTORY = 2, SYMLINK = 4,
  LINK = SYMLINK
}
 Enumerations to handle directory entry types. More...
 
- Static Public Attributes inherited from fileName
static const char *const typeName = "fileName"
 The typeName. More...
 
static int debug
 Debugging. More...
 
static int allowSpaceInFileName
 Allow space character in fileName. To be used with caution. More...
 
static const fileName null
 An empty fileName. More...
 
- Static Public Attributes inherited from string
static const char *const typeName = "string"
 The type name "string". More...
 
static int debug
 The debug flag. More...
 
static const string null
 An empty string. More...
 
- Protected Member Functions inherited from string
std::string::size_type find_ext () const
 Find position of a file extension dot, return npos on failure. More...
 
word ext () const
 Return file name extension (part after last .) More...
 
bool ext (const word &ending)
 Append a '.' and the ending. More...
 
bool has_ext () const
 Return true if it has an extension or simply ends with a '.'. More...
 
bool has_ext (const char *ending) const
 Return true if the extension is the same as the given ending. More...
 
bool has_ext (const std::string &ending) const
 Return true if the extension is the same as the given ending. More...
 
bool has_ext (const wordRe &ending) const
 Return true if the extension matches the given ending. More...
 
bool remove_path ()
 Remove leading path, return true if string changed. More...
 
bool remove_ext ()
 Remove extension, return true if string changed. More...
 
- Static Protected Member Functions inherited from string
static std::string::size_type find_ext (const std::string &str)
 Find position of a file extension dot, return npos on failure. More...
 
template<class PrimitiveType >
static std::string::size_type string_printf (std::string &output, const char *fmt, const PrimitiveType &val)
 A printf-style formatter for a primitive. More...
 
template<class PrimitiveType >
static std::string::size_type string_printf (std::string &output, const std::string &fmt, const PrimitiveType &val)
 A printf-style formatter for a primitive. More...
 

Detailed Description

Specification of a valid Ensight file-name.

Spaces must be quoted, no '*' wildcards, no '' (structured block continuation).

Overall line length within case file is limited to 1024, but this is not yet addressed.

Note
To assist windows usage, a colon (':') in the name is replaced with by an underscore.

Definition at line 54 of file ensightFileName.H.

Constructor & Destructor Documentation

◆ FileName() [1/4]

FileName ( const FileName )
default

Copy construct.

◆ FileName() [2/4]

FileName ( FileName &&  )
default

Move construct.

◆ FileName() [3/4]

FileName ( const char *  s)
inlineexplicit

Construct as copy of character array.

Definition at line 26 of file ensightFileNameI.H.

References FileName::stripInvalid().

Here is the call graph for this function:

◆ FileName() [4/4]

FileName ( const std::string &  s)
inlineexplicit

Copy construct from std::string.

Definition at line 34 of file ensightFileNameI.H.

References FileName::stripInvalid().

Here is the call graph for this function:

Member Function Documentation

◆ valid()

bool valid ( char  c)
inlinestatic

Is this character valid for an ensight file-name.

Definition at line 44 of file ensightFileNameI.H.

References Foam::constant::universal::c, and fileName::valid().

Here is the call graph for this function:

◆ stripInvalid()

void stripInvalid ( )
inline

Strip invalid characters.

Definition at line 55 of file ensightFileNameI.H.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::nl, and string::replaceAny().

Referenced by FileName::FileName().

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

◆ operator=() [1/5]

void operator= ( const fileName )
delete

◆ operator=() [2/5]

void operator= ( const word )
delete

◆ operator=() [3/5]

void operator= ( const string )
delete

◆ operator=() [4/5]

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

◆ operator=() [5/5]

void operator= ( const char *  )
delete

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