void wxDeldir(wxString Directory) { wxArrayString files; wxDirTraverserFiles fileTraverser(files); wxDir(Directory).Traverse(fileTraverser); for(int i=0; i<(int)files.Count(); i++) { wxRemoveFile(files[i]); } files.Clear(); wxDirTraverserDirectories dirTraverser(files); wxDir(Directory).Traverse(dirTraverser); // Reverse Sort to make sure first delte folders without subfolders files.Sort(true); for(int i=0; i<(int)files.Count(); i++) { wxRmDir(files[i]); } wxRmDir(Directory); }
wxDebugReport::~wxDebugReport() { if ( !m_dir.empty() ) { // remove all files in this directory wxDir dir(m_dir); wxString file; for ( bool cont = dir.GetFirst(&file); cont; cont = dir.GetNext(&file) ) { if ( wxRemove(wxFileName(m_dir, file).GetFullPath()) != 0 ) { wxLogSysError(_("Failed to remove debug report file \"%s\""), file.c_str()); m_dir.clear(); break; } } } if ( !m_dir.empty() ) { // Temp fix: what should this be? eVC++ doesn't like wxRmDir #ifdef __WXWINCE__ if ( wxRmdir(m_dir.fn_str()) != 0 ) #else if ( wxRmDir(m_dir.fn_str()) != 0 ) #endif { wxLogSysError(_("Failed to clean up debug report directory \"%s\""), m_dir.c_str()); } } }
virtual wxDirTraverseResult OnDir(const wxString& dirname) { wxDir dir(dirname); dir.Traverse(*this); if (!wxRmDir(dirname)){ //this get triggered a few times while clearing folders //but if this gets reimplented we should probably warn //if directories can't be removed } return wxDIR_CONTINUE; }
bool wxRmdir(const wxString& dir, int WXUNUSED(flags)) { #if defined(__VMS__) return false; //to be changed since rmdir exists in VMS7.x #else if ( wxRmDir(dir.fn_str()) != 0 ) { wxLogSysError(_("Directory '%s' couldn't be deleted"), dir); return false; } return true; #endif }