好久没有发文章了,发点福利放点代码吧,废话不多说,直接上代码:
头文件:
#ifndef WXWIDGETHELPER_H #define WXWIDGETHELPER_H #pragma once #include <wx/filename.h> #include <wx/arrstr.h> /** * @brief 获取文件路径. * @param sFilePath 文件路径. * @retrive wxString 文件路径. * @remarks Use like this: * @code wxString s = GetFilePath("temp\\DEM.tif"); //结果为:"temp * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 4th Feb,2015. */ wxString GetFilePath(wxString sFilePath); /** * @brief 获取文件名,不带扩展名. * @param sFilePath 文件路径. * @retrive wxString 文件名. * @remarks Use like this: * @code wxString s = GetFileName("temp\\DEM.tif"); //结果为:DEM * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 4th Feb,2015. */ wxString GetFileName(wxString sFilePath); /** * @brief 获取完整的文件名. * @param sFilePath 文件路径. * @retrive wxString 文件名. * @remarks Use like this: * @code wxString s = GetFullName("temp\\DEM.tif"); //结果为:DEM.tif * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 4th Feb,2015. */ wxString GetFullName(wxString sFilePath); /** * @brief 使用原始路径,拼接新的文件名生成新的文件路径. * @param sFilePath 文件路径. * @param sAppendName 新文件名. * @retrive wxString 新文件路径. * @remarks Use like this: * @code wxString s = GetNewFullPath("temp\\DEM.tif","Avg.tif"); //结果为:temp\\Avg.tif * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 4th Feb,2015. */ wxString GetNewFullPath(wxString sFilePath,wxString sNewFileName); /** * @brief 使用原始路径及文件名,拼接新的字符串生成新的文件路径. * @param sFilePath 文件路径. * @param sAppendName 需要附加的文件名. * @retrive wxString 新文件路径. * @remarks Use like this: * @code wxString s = GetNewFullPath2("temp\\DEM.tif","_Avg.tif"); //结果为:temp\\DEM_Avg.tif * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 4th Feb,2015. */ wxString GetNewFullPath2(wxString sFilePath,wxString sAppendName); /** * @brief 分割字符串. * @param pString [in]待分割字符串. * @param cSpliter [in]分隔字符. * @remarks Use like this: * @code wxArrayString arry = wxSplitString("a,b,c,d",','); size_t count = arry.GetCount(); wxPrintf(_T("\arrysize = %u\n"), count); for ( size_t arg = 0; arg < count; arg++ ) { wxPrintf(_T("\tarry[%u] = %s\n"), arg, arry[arg].c_str()); } * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 25th Mar,2015. */ wxArrayString wxSplitString(const wxChar *pString,const wxChar cSpliter); /** * @brief 分割字符串. * @param pString [in]待分割字符串. * @param pSpliter [in]分隔字符串. * @remarks Use like this: * @code wxArrayString arry = wxSplitString(",,a,b,,,c,,,d,adsdsd,sdfwee,dddd,",","); size_t count = arry.GetCount(); wxPrintf(_T("\arrysize = %u\n"), count); for ( size_t arg = 0; arg < count; arg++ ) { wxPrintf(_T("\tarry[%u] = %s\n"), arg, arry[arg].c_str()); } * @endcode * @author Zhengwen.Fu * @history - 1.Created by Zhengwen.Fu on 25th Mar,2015. */ wxArrayString wxSplitString(const wxChar *pString,const wxChar *pSpliter); #endif源文件:
#include "wxWidgetHelper.h" wxString GetFilePath(wxString sFilePath) { wxFileName fName(sFilePath); return fName.GetPath(); } wxString GetFileName(wxString sFilePath) { wxFileName fName(sFilePath); return fName.GetName(); } wxString GetFullName(wxString sFilePath) { wxFileName fName(sFilePath); return fName.GetFullName(); } wxString GetNewFullPath(wxString sFilePath,wxString sNewFileName) { wxFileName fName(sFilePath); return (fName.GetPath()+"\\"+sNewFileName); } wxString GetNewFullPath2(wxString sFilePath,wxString sAppendName) { wxFileName fName(sFilePath); return (fName.GetPath()+"\\"+fName.GetName()+sAppendName); } wxArrayString wxSplitString(const wxChar *p,const wxChar cSpliter) { wxArrayString arry; wxString str; str.reserve(1024); while (true) { while(*p==cSpliter) p++; if(*p == _T('\0')) break; for (str.Clear();;p++) { if(*p==cSpliter || *p == _T('\0')) break; str += *p; } arry.push_back(str); } return arry; } wxArrayString wxSplitString(const wxChar *pString,const wxChar *pSpliter) { wxArrayString arry; wxString s(pString); while (true) { int pos = s.Find(pSpliter); if (pos == 0) { s = s.substr(1); continue; } if(pos == wxString::npos ) { if(s.Length() > 0) arry.push_back(s.Trim()); break; } arry.push_back(s.substr(0,pos)); s = s.substr(pos+1); } return arry; }OK了,具体用法在注释中有。