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 "private/windows.hpp"
8 #endif
9 
10 #include <list>
11 
14 
15 namespace fz {
16 
22 class FZ_PUBLIC_SYMBOL recursive_remove
23 {
24 public:
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 
37 protected:
42  virtual bool confirm() const { return true; }
43 
44 #ifdef FZ_WINDOWS
45  virtual void adjust_shfileop(SHFILEOPSTRUCT & op);
49 #endif
50 };
51 
52 }
53 
54 #endif
Recursively deletes directories.
Definition: recursive_remove.hpp:22
virtual bool confirm() const
Can be overriden to ask the user for a confirmation.
Definition: recursive_remove.hpp:42
std::wstring native_string
A string in the system&#39;s native character type and encoding. Note: This typedef changes depending on...
Definition: string.hpp:32
The namespace used by libfilezilla.
Definition: apply.hpp:16
Sets some global macros and further includes string.hpp.