class Core::Portable::FileName

Overview

String representing a file name using a platform-dependent path delimiter. More…

#include <corefilename.h>

class FileName: public Core::CStringBuffer
{
public:
    // enums

    enum PathDelimiterType;

    // fields

    static CStringPtr kPathDelimiter =  "/";

    // construction

    FileName(CStringPtr filename = nullptr);

    // methods

    FileName& ascend();
    FileName& descend(CStringPtr name);
    FileName& makeValid();
    FileName& adjustPathDelimiters(PathDelimiterType type = kPathChar);
    bool isRelative() const;
    FileName& makeAbsolute(CStringPtr baseFolder);
    FileName& setExtension(CStringPtr ext, bool replace = true);
    FileName& removeExtension();
    bool getExtension(FileName& extension) const;
    void getName(FileName& name) const;
};

Inherited Members

public:
    // methods

    CStringPtr str() const;
    bool isEmpty() const;
    int length() const;
    bool copyTo(char* charBuffer, int bufferSize) const;
    int index(CStringPtr other) const;
    bool contains(CStringPtr other) const;
    bool startsWith(CStringPtr other) const;
    bool endsWith(CStringPtr other) const;
    int index(char c) const;
    int index(uchar c) const;
    int lastIndex(char c) const;
    int lastIndex(uchar c) const;
    bool contains(char c) const;
    int compare(CStringPtr other, bool caseSensitive = true) const;
    bool getIntValue(int32& value) const;
    bool getIntValue(int64& value) const;
    int scanInt(int fallback = 0) const;
    int64 scanLargetInt(int64 fallback = 0) const;
    bool getHexValue(int64& value) const;
    bool getFloatValue(double& value) const;
    bool getFloatValue(float& value) const;
    float scanFloat(float fallback = 0) const;
    double scanDouble(double fallback = 0) const;
    unsigned int getHashCode() const;
    bool operator == (CStringPtr other) const;
    bool operator != (CStringPtr other) const;

    template <class S>
    bool operator == (const CStringTraits<S>& other) const;

    template <class S>
    bool operator != (const CStringTraits<S>& other) const;

    bool equalsUnsafe(CStringPtr other) const;
    char at(int index) const;
    char firstChar() const;
    char lastChar() const;
    char operator [] (int index) const;
    operator CStringPtr () const;
    T& init(CStringPtr string);
    T& append(CStringPtr string, int count = -1);
    T& append(char c);
    T& append(uchar uc);
    T& appendFormat(const char* format, ...);
    T& appendFormatArgs(const char* format, va_list marker);
    T& appendInteger(int32 value);
    T& appendInteger(int64 value);
    T& appendInteger(uint32 value);
    T& appendInteger(uint64 value);
    T& operator += (char c);
    T& operator += (uchar uc);
    T& operator += (CStringPtr text);
    static bool isAlpha(char c);
    static bool isAlphaNumeric(char c);
    static bool isWhitespace(char c);
    static bool isDigit(char c);
    static bool isASCII(char c);
    static bool isLowercase(char c);
    static bool isUppercase(char c);
    static char toLowercase(char c);
    static char toUppercase(char c);
    CStringBuffer& empty();
    CStringBuffer& truncate(int index);
    CStringBuffer& insert(int index, CStringPtr otherString);
    CStringBuffer& remove(int index, int count);
    CStringBuffer& replace(int index, int count, CStringPtr otherString);
    CStringBuffer& replace(char oldChar, char newChar);
    void subString(CStringBuffer& result, int index, int count = -1) const;
    CStringBuffer& trimWhitespace();
    CStringBuffer<maxSize>& toLowercase();
    CStringBuffer<maxSize>& toUppercase();
    CStringBuffer& operator = (CStringPtr text);
    CStringBuffer& assignInteger(int value);
    char* getBuffer();
    int getSize() const;
    static char toLowercase(char c);
    static char toUppercase(char c);

Detailed Documentation

String representing a file name using a platform-dependent path delimiter.

Methods

FileName& ascend()

Ascend one directory level.

FileName& descend(CStringPtr name)

Descend one directory level, i.e.

append name with path delimiter.

FileName& makeValid()

Replace invalid file name characters with ‘_’.

FileName& adjustPathDelimiters(PathDelimiterType type = kPathChar)

Adjust path delimiters.

bool isRelative() const

Check for relative path.

FileName& makeAbsolute(CStringPtr baseFolder)

Make absolute in given base folder.

FileName& setExtension(CStringPtr ext, bool replace = true)

Append (or replace) file name extension.

FileName& removeExtension()

Remove file name extension.

bool getExtension(FileName& extension) const

Get file name extension.

void getName(FileName& name) const

Get file name from full path string.