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 
15 namespace fz {
16 
23 class FZ_PUBLIC_SYMBOL recursive_remove
24 {
25 public:
26  recursive_remove() = default;
27  virtual ~recursive_remove() = default;
28 
29  recursive_remove(recursive_remove const&) = delete;
30  recursive_remove& operator=(recursive_remove const&) = delete;
31 
33  bool remove(native_string const& path);
34 
36  bool remove(std::list<native_string> dirsToVisit);
37 
38 protected:
43  virtual bool confirm() const { return true; }
44 
45 #ifdef FZ_WINDOWS
49  virtual void adjust_shfileop(SHFILEOPSTRUCT & op);
50 #endif
51 };
52 
53 }
54 
55 #endif
Recursively deletes directories.
Definition: recursive_remove.hpp:24
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:43
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:34