コード例 #1
0
ファイル: sPATCHMain.cpp プロジェクト: Rhiney/pw-tools
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);
}
コード例 #2
0
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;
}
コード例 #3
0
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;
}
コード例 #4
0
/*-----------------------------------------------------------------------------
 *  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);
}
コード例 #5
0
ファイル: sPATCHMain.cpp プロジェクト: Rhiney/pw-tools
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]);
            }
        }
    }
}