view include/core/filesystem.h @ 62:4c6dd5999b39

*: update 1. updated animia 2. use widestrings for filesystem on Windows
author Paper <mrpapersonic@gmail.com>
date Sun, 01 Oct 2023 06:16:06 -0400
parents 327568ad9be9
children 3d2decf093bb
line wrap: on
line source

#ifndef __core__filesystem_h
#define __core__filesystem_h
#include <string>

namespace Filesystem {

class Path {
        public:
                Path();
                Path(const std::string& path);
                Path(const Path& path);
                bool CreateDirectories() const;
                bool Exists() const;
                std::string Basename() const;
                std::string Stem() const;
                std::string Extension() const;
                Path GetParent() const;
                void SetPath(const std::string& path);
		std::string GetPath() const;

        private:
                std::string _path;
};

Path GetDotPath(); // %APPDATA%/minori, ~/Library/Application Support/minori, ~/.config/minori...
Path GetConfigPath(); // (dotpath)/config.json
Path GetAnimeDBPath(); // (dotpath)/anime/db.json

} // namespace Filesystem

#endif // __core__filesystem_h