Subversion Repositories spk

Rev

Blame | Last modification | View Log | RSS feed

#ifndef __DIRIO_H__
#define __DIRIO_H__

#include "String.h"

namespace XLib
{
        class FileIO;
        class SPKEXPORT DirIO
        {
        public:
                static bool Exists(const XLib::String& dir);

        public:
                DirIO();
                DirIO(const XLib::String &dir);
                DirIO(const FileIO &file);
                ~DirIO();

                void setDir(const XLib::String &dir);

                // access functions
                bool exists() const;
                bool exists(const XLib::String& dir) const;
                bool isDir() const;
                bool isDir(const XLib::String& dir) const;
                bool isFile() const;
                bool isFile(const XLib::String& dir) const;

                // directory handling
                bool create() const;
                bool create(const XLib::String& dir) const;
                bool createAndChange(const XLib::String &dir);

                bool move(const XLib::String& to);
                bool move(const XLib::String& from, const XLib::String& to);
                bool removeDir(const XLib::String &dir, bool doFiles = false, bool recursive = false, StringList *error = NULL);
                bool cd(const XLib::String& dir);

                bool dirList(StringList& files, XLib::String dir = XLib::String::Null(), XLib::String filePattern = XLib::String::Null()) const;
                StringList dirList(XLib::String dir = XLib::String::Null(), XLib::String filePattern = XLib::String::Null()) const;
                bool isEmptyDir(const StringList &dirList) const;

                XLib::String file(const XLib::String& filename) const;
                XLib::String dir(const XLib::String& sDir) const;
                const XLib::String& dir() const;
                XLib::String topDir() const;
                const XLib::String& moveBack();
                XLib::String back() const;

        private:
                XLib::String _parseDir(const XLib::String& dir) const;

                XLib::String m_sCurrentDir;
        };

}
#endif //__DIRIO_H__