53 enum PathListOption options;
56 using ItemList = std::map<Yuni::Clob, FileInfo>;
58 using iterator = ItemList::iterator;
59 using const_iterator = ItemList::const_iterator;
75 const_iterator begin()
const
85 const_iterator end()
const
92 template<
class StringT>
93 void add(
const StringT& s)
95 add(s, pathListOptNone);
98 template<
class StringT>
99 void add(
const StringT& s,
size_t size)
101 add(s, pathListOptNone, size);
104 template<
class StringT>
105 void add(
const StringT& s,
const PathListOption opt)
108 if (item.find(pTmp) == item.end())
110 FileInfo& info = item[pTmp];
116 template<
class StringT>
117 void add(
const StringT& s,
const PathListOption opt,
size_t size)
120 if (item.find(pTmp) == item.end())
122 FileInfo& info = item[pTmp];
128 template<
class StringT>
129 void addFromFolder(
const StringT& folder,
const PathList& exclude)
133 internalAddFromFolder(s, exclude);
136 template<
class StringT>
137 PathListOption find(
const StringT& s)
const
140 ItemList::const_iterator i = item.find(pTmp);
141 return ((i != item.end()) ? i->second.options : pathListOptNotFound);
144 template<
class StringT>
145 void remove(
const StringT& s)
150 ItemList::iterator i = item.find(pTmp);
158 void remove(
const PathList& toDelete)
160 if (item.empty() || toDelete.empty())
164 const ItemList::const_iterator end = toDelete.item.end();
165 for (ItemList::const_iterator i = toDelete.item.begin(); i != end; ++i)
167 this->remove(i->first);
173 return (uint)item.size();
181 size_t totalSizeInBytes()
const;
183 template<
class StringT>
184 uint deleteAllEmptyFolders(
const StringT& sourceFolder)
191 return internalDeleteAllEmptyFolders();
194 template<
class StringT>
195 uint deleteAllFiles(
const StringT& sourceFolder)
202 return internalDeleteAllFiles();
212 template<
class StringT>
213 void internalPrepare(
const StringT& s)
const
216 for (uint i = 0; i != pTmp.size(); ++i)
218#ifdef YUNI_OS_WINDOWS
232 size_t internalSizeOnDisk()
const;
233 uint internalDeleteAllEmptyFolders();
234 uint internalDeleteAllFiles();
235 void internalAddFromFolder(
const Yuni::Clob& folder,
const PathList& exclude);
239 mutable Yuni::Clob pTmp;