[代码分享] wxWidgets - wxDir 遍历文件
2013-03-01 14:25 wid 阅读(2556) 评论(0) 编辑 收藏 举报wxWidgets - wxDir 遍历文件
一、遍历单个目录下的文件 - 不进入子目录
1 #include <stdio.h> 2 #include "wx/filefn.h" 3 #include "wx/dir.h" 4 5 int main() 6 { 7 wxDir dir( wxGetCwd() ); //为枚举打开当前目录 8 9 if ( !dir.IsOpened() ) //检测是否成功打开 10 return 0; 11 12 puts("枚举当前目录下的文件:"); 13 14 wxString filename; 15 16 bool cont = dir.GetFirst( &filename ); 17 while ( cont ) 18 { 19 printf("%s\n", filename.c_str()); 20 cont = dir.GetNext(&filename); 21 } 22 23 return 0; 24 }
二、遍历指定目录下所有文件 - 进入子目录
#include <stdio.h> #include "wx/filefn.h" #include "wx/dir.h" int main() { wxDir dir( _T("D:\\Project\\wxWidgets\\wxDocToZh") ); if ( !dir.IsOpened() ) return 0; wxArrayString files; dir.GetAllFiles( _T("D:\\Project\\wxWidgets\\wxDocToZh"), &files ); //获取 D:\\Project\\wxWidgets\\wxDocToZh 下所有文件的完整路径到 files unsigned int i = 0; for( i; i < files.GetCount(); i++ ) puts( files[i] ); return 0; }
三、通过 wxDir::Traverse 实现遍历目录下所有文件 - 进入子目录
1 #include <stdio.h> 2 #include "wx/filefn.h" 3 #include "wx/dir.h" 4 5 class wxDirTraverserSimple : public wxDirTraverser //继承wxDirTraverser类 6 { 7 public: 8 wxDirTraverserSimple(wxArrayString& files) : m_files(files) { } 9 10 virtual wxDirTraverseResult OnFile(const wxString& filename) 11 { 12 m_files.Add(filename); 13 return wxDIR_CONTINUE; 14 } 15 16 virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname)) 17 { 18 return wxDIR_CONTINUE; 19 } 20 21 private: 22 wxArrayString& m_files; 23 }; 24 25 26 int main() 27 { 28 wxDir dir( _T("D:\\Project\\wxWidgets\\wxDocToZh") ); //为枚举打开当前目录 29 30 if ( !dir.IsOpened() ) //检测是否成功打开 31 return 0; 32 33 wxArrayString files; 34 wxDirTraverserSimple traverser(files); 35 36 dir.Traverse(traverser); 37 38 unsigned int i = 0; 39 for(i; i < files.GetCount(); i++) 40 puts( files[i] ); 41 42 return 0; 43 }
四、其他操作
wxDir::wxDir
wxDir::~wxDir
wxDir::Exists //检测目录是否存在
wxDir::GetAllFiles
wxDir::FindFirst
wxDir::GetFirst
wxDir::GetName
wxDir::GetNext
wxDir::GetTotalSize //获取目录大小
wxDir::HasFiles //目录是否存在文件
wxDir::HasSubDirs //是否存在子目录
wxDir::IsOpened
wxDir::Open
wxDir::Traverse
参见手册 wxWidgets - wxDir:
笔者译: [译] wxWidgets - wxDir
官方原文: http://docs.wxwidgets.org/2.8/wx_wxdir.html
--------------------
wid, 2012.03.01
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架