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); }
void mbCmdDirEmpty::Execute(mbCommands& stack) { MB_CMD_GUARD_OPT; wxString id = ParseProp(wxT("Id")); PrintExecute(stack, wxT("%s"), id.c_str() ); if( wxDirExists(id) && (wxDir(id).HasFiles() || wxDir(id).HasSubDirs()) && !optional ) ThrowError(wxT("Failed: %s"), id.c_str() ); MB_CMD_UNGUARD_OPT; }
mbFileTraverser mbFileTraverser::Init(const wxString& dirName, const wxString& filespec, int flags, bool reverse) { mbFileTraverser iter(reverse); wxDir(dirName).Traverse(iter, filespec, flags); iter.InitReverse(); return iter; }
/*----------------------------------------------------------------------------- * Helper functinos *-----------------------------------------------------------------------------*/ void SerialConfigurator::ListFiles(void) { //wxMessageBox( _T("ListFiles called"), _T("info"), wxOK); m_filesList->Clear(); files.Clear(); //get files list wxDir(m_workingDirPicker->GetPath()).GetAllFiles(m_workingDirPicker->GetPath(), &files, wxT("*.txt")); //convert full paths to file names without extension. wxArrayString fileNames; wxString temp; for (int i =0; i< files.GetCount(); i++) { wxFileName::SplitPath(files[i], NULL, NULL, &temp, NULL); fileNames.Add(temp); } //add file names to list control m_filesList->InsertItems(fileNames,0); m_filesList->SetSelection(0); }
void sPATCHDialog::ApplyPatches() { if(wxDirExists(wxT("PATCHES"))) { wxArrayString files; wxDirTraverserFiles fileTraverser(files); wxDirTraverserDirectories dirTraverser(files); //###################################################################### //##### EXTRACT PATCHES ################################################ //###################################################################### if(wxDirExists(wxT("FILES"))) { wxDeldir(wxT("FILES")); } wxMkdir(wxT("FILES")); files.Clear(); wxDir(wxT("PATCHES")).Traverse(fileTraverser, wxT("*.xup"), wxDIR_DEFAULT); for(int i=0; i<(int)files.Count(); i++) { if(files[i].EndsWith(wxT(".xup"))) { Status = wxT("Extracting Patch (") + files[i].AfterLast(L'\\') + wxT(") ..."); this->Refresh(); wxProcess::Open(wxT("tools\\sza.exe x \"") + files[i] + wxT("\" -o\"FILES\" -y"), wxEXEC_SYNC | wxEXEC_NODISABLE); } } wxDeldir(wxT("PATCHES")); //###################################################################### //##### MOVING FILES ################################################### //###################################################################### Status = wxT("Patching Client Files ..."); this->Refresh(); wxProcess::Open(wxT("tools\\rcopy.exe \"FILES\" \"..\" /MOVE /S /IS"), wxEXEC_SYNC | wxEXEC_NODISABLE); // rcopy removes "FILES" directory automatically //wxDeldir(wxT("FILES"); //###################################################################### //##### UPDATING PCK ################################################### //###################################################################### files.Clear(); wxDir(wxT("..\\element")).Traverse(dirTraverser, wxT("*.files"), wxDIR_DEFAULT); for(int i=0; i<(int)files.Count(); i++) { if(files[i].EndsWith(wxT(".files"))) { if(files[i].EndsWith(wxT(".pck.files"))) { Status = wxT("Updating PCK File (") + files[i].AfterLast('\\').BeforeLast('.') + wxT(") ..."); wxProcess::Open(wxT("tools\\sPCK.exe -pw -a \"..\\element\\") + files[i].AfterLast(L'\\') + wxT("\""), wxEXEC_SYNC | wxEXEC_NODISABLE); } if(files[i].EndsWith(wxT(".pck.b64.files"))) { Status = wxT("Updating PCK File (") + files[i].AfterLast('\\').BeforeLast('.').BeforeLast('.') + wxT(") ..."); wxProcess::Open(wxT("tools\\sPCK.exe -pw -ap \"..\\element\\") + files[i].AfterLast(L'\\') + wxT("\""), wxEXEC_SYNC | wxEXEC_NODISABLE); } this->Refresh(); wxDeldir(files[i]); } } } }