6#ifndef ACTIVE_FILE_FS_NODE
7#define ACTIVE_FILE_FS_NODE
9#include "Active/File/Path.h"
10#include "Active/Utility/Cloner.h"
11#include "Active/Utility/String.h"
12#include "Active/Utility/Time.h"
25 using Unique = std::unique_ptr<FSNode>;
27 using Shared = std::shared_ptr<FSNode>;
54 virtual ~
FSNode() noexcept = default;
69 bool operator== (const
FSNode& ref) const noexcept;
83 virtual bool exists()
const {
return m_node.exists(); }
89 virtual bool isDirectory()
const {
return m_node.is_directory(); }
122 virtual void remove(
bool isRecursive =
true);
129 bool isMine() const noexcept {
return m_isMine; }
134 void setMine(
bool state)
noexcept { m_isMine = state; }
141 std::filesystem::directory_entry m_node;
143 bool m_isMine =
true;
Class to represent a file system node (directory, file etc)
Definition FSNode.h:19
std::unique_ptr< FSNode > Unique
Unique pointer.
Definition FSNode.h:25
virtual void moveTo(const Path &path)
Definition FSNode.cpp:84
Path getPath() const noexcept
Definition FSNode.h:77
virtual bool exists() const
Definition FSNode.h:83
bool isMine() const noexcept
Definition FSNode.h:129
virtual bool isDirectory() const
Definition FSNode.h:89
virtual void rename(const utility::String &name)
Definition FSNode.cpp:97
utility::Time getModificationTime() const
Definition FSNode.h:95
FSNode() noexcept
Definition FSNode.cpp:16
void setMine(bool state) noexcept
Definition FSNode.h:134
virtual void remove(bool isRecursive=true)
Definition FSNode.cpp:111
static const utility::String pathDelimiter
The path delimiter expression for the current platform.
Definition FSNode.h:32
std::shared_ptr< FSNode > Shared
Unique pointer.
Definition FSNode.h:27
virtual void setPath(const Path &path)
Definition FSNode.cpp:74
Class to represent the path of a node in the local file system.
Definition Path.h:17
A Unicode-aware string class.
Definition String.h:51
A class to represent a date/time.
Definition Time.h:19
Definition Directory.h:12