view include/core/filesystem.h @ 128:859d2a957940

cmake: set CXX_STANDARD to 17 builds: get wget on linux, don't attempt to mount binfmt_misc on win32/64 I'd prefer staying on C++11, but if constexpr is just so damn sexy...
author Paper <mrpapersonic@gmail.com>
date Thu, 09 Nov 2023 02:28:22 -0500
parents 39521c47c7a3
children 0a458cb26ff4
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
Path GetPlayersPath();    // (dotpath)/player.json
Path GetExtensionsPath(); // (dotpath)/extensions.json

} // namespace Filesystem

#endif // __core__filesystem_h