libfilezilla
recursive_remove.hpp
Go to the documentation of this file.
1#ifndef LIBFILEZILLA_RECURSIVE_REMOVE_HEADER
2#define LIBFILEZILLA_RECURSIVE_REMOVE_HEADER
3
4#include "libfilezilla.hpp"
5
6#ifdef FZ_WINDOWS
7#include "glue/windows.hpp"
8#endif
9
10#include <list>
11
14
15namespace fz {
16
22class FZ_PUBLIC_SYMBOL recursive_remove
23{
24public:
25 recursive_remove() = default;
26 virtual ~recursive_remove() = default;
27
28 recursive_remove(recursive_remove const&) = delete;
29 recursive_remove& operator=(recursive_remove const&) = delete;
30
32 bool remove(native_string const& path);
33
35 bool remove(std::list<native_string> dirsToVisit);
36
37protected:
42 virtual bool confirm() const { return true; }
43
44#ifdef FZ_WINDOWS
48 virtual void adjust_shfileop(SHFILEOPSTRUCT & op);
49#endif
50};
51
52}
53
54#endif
Recursively deletes directories.
Definition: recursive_remove.hpp:23
virtual void adjust_shfileop(SHFILEOPSTRUCT &op)
Windows only: Allows customization of the SHFILEOPSTRUCT passed to SHFileOperation.
virtual bool confirm() const
Can be overridden to ask the user for a confirmation.
Definition: recursive_remove.hpp:42
bool remove(std::list< native_string > dirsToVisit)
Removes given directories.
bool remove(native_string const &path)
Removes given directory.
Sets some global macros and further includes string.hpp.
The namespace used by libfilezilla.
Definition: apply.hpp:17
std::wstring native_string
A string in the system's native character type and encoding. Note: This typedef changes depending on...
Definition: string.hpp:33