首页 > 代码库 > windows下文件查找
windows下文件查找
今天再看树的结构时,想起文件文件的储存就是一个典型的树结构,因此基于MFC提供的函数,写了一个关于文件查找的代码。
- 因为需要用到MFC的类,所以在建立控制台项目时,需要关联MFC;
- 该代码删除了由于关联MFC而生成的一些其他代码,保留_tmain()函数即可;
- 采用宽字符,因此使用了wcout输出
功能:
收缩指定磁盘中的文件,可以进行简单的模糊查找。
1 #include "stdafx.h" 2 #include "ListWindowsFile.h" 3 4 #ifdef _DEBUG 5 #define new DEBUG_NEW 6 #endif 7 8 9 using namespace std; 10 11 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 12 { 13 int nRetCode = 0; 14 setlocale(LC_ALL, "chs"); 15 //查找F盘中文件名中含有RewindBoard的文件 16 CString path = TEXT("F:\\"); 17 CString name = TEXT("RewindBoard"); 18 FindFileWindows(path, name); 19 system("pause"); 20 return nRetCode; 21 } 22 23 void FindFileWindows(CString BasePath, CString object) 24 { 25 CFileFind Finder; 26 CString PreFilePath; 27 CString NextFullName; 28 CString FileName; 29 30 PreFilePath = BasePath + TEXT("*.*"); 31 int iResult = Finder.FindFile(PreFilePath); //遍历整个文件夹 32 33 while (0 != iResult) 34 { 35 iResult = Finder.FindNextFileW(); 36 37 //判断是否为文件夹 38 if(Finder.IsDirectory() && !Finder.IsDots()) 39 { 40 NextFullName = Finder.GetFilePath(); 41 FileName = Finder.GetFileName(); 42 if (FileName.Find(object, 0) != -1) 43 { 44 std::wcout << (LPCTSTR)Finder.GetFilePath() << std::endl; 45 } 46 NextFullName += TEXT("\\"); 47 FindFileWindows(NextFullName, object); 48 } 49 else //寻找该目录中是否有该文件 50 { 51 FileName = Finder.GetFileName(); 52 if (FileName.Find(object, 0) != -1) 53 { 54 std::wcout << (LPCTSTR)Finder.GetFilePath() << std::endl; 55 } 56 } 57 } 58 }
运行结果:
windows下文件查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。