Subversion Repositories spk

Rev

Rev 197 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef __DIRIO_H__
#define __DIRIO_H__

#include "Utils/WStringList.h"
#include "spkdll.h"

class CFileIO;

class SPKEXPORT CDirIO
{
public:
        static bool Exists(const Utils::WString &dir);
        static bool IsEmptyDir(const Utils::WStringList& dirList);

public:
        CDirIO();
        CDirIO(const Utils::WString &dir);
        CDirIO(CFileIO *file);
        ~CDirIO();

        void setDir(const Utils::WString& dir);

        // access functions
        bool exists() const;
        bool exists(const Utils::WString &dir) const;
        bool isDir() const;
        bool isDir(const Utils::WString &dir) const;
        bool isFile() const;
        bool isFile(const Utils::WString &dir) const;

        // directory handling
        bool create() const;
        bool create(const Utils::WString &dir) const;
        bool createAndChange(const Utils::WString &dir);

        bool move(const Utils::WString &to);
        bool move(const Utils::WString& from, const Utils::WString& to);
        bool removeDir(const Utils::WString &dir, bool doFiles = false, bool recursive = false, Utils::WStringList* errors = NULL);
        bool cd(const Utils::WString &dir);

        bool dirList(Utils::WStringList& files, const Utils::WString &dir = Utils::WString::Null(), const Utils::WString &filePattern = Utils::WString::Null()) const;
        bool checkEmptyDir(const Utils::WStringList& dirList) const;

        Utils::WString file(const Utils::WString &filename) const;
        Utils::WString dir(const Utils::WString &sDir) const;
        const Utils::WString &dir() const;
        Utils::WString topDir() const;
        const Utils::WString &moveBack();
        Utils::WString back() const;

private:
        Utils::WString _parseDir(const Utils::WString &dir) const;

        Utils::WString m_sCurrentDir;
};

#endif //__DIRIO_H__