windows下文件查找
Posted oscarwin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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下文件查找的主要内容,如果未能解决你的问题,请参考以下文章
在文件夹下所有文件中查找字符串(linux/windows)
npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段