libfilezilla
recursive_remove.hpp
Go to the documentation of this file.
00001 #ifndef LIBFILEZILLA_RECURSIVE_REMOVE_HEADER
00002 #define LIBFILEZILLA_RECURSIVE_REMOVE_HEADER
00003 
00004 #include "libfilezilla.hpp"
00005 
00006 #ifdef FZ_WINDOWS
00007 #include "private/windows.hpp"
00008 #endif
00009 
00010 #include <list>
00011 
00014 
00015 namespace fz {
00016 
00022 class FZ_PUBLIC_SYMBOL recursive_remove
00023 {
00024 public:
00025     recursive_remove() = default;
00026     virtual ~recursive_remove() = default;
00027 
00028     recursive_remove(recursive_remove const&) = delete;
00029     recursive_remove& operator=(recursive_remove const&) = delete;
00030 
00032     bool remove(native_string const& path);
00033 
00035     bool remove(std::list<native_string> dirsToVisit);
00036 
00037 protected:
00042     virtual bool confirm() const { return true; }
00043 
00044 #ifdef FZ_WINDOWS
00045 
00046 
00047 
00048     virtual void adjust_shfileop(SHFILEOPSTRUCT & op);
00049 #endif
00050 };
00051 
00052 }
00053 
00054 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines