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下文件查找的主要内容,如果未能解决你的问题,请参考以下文章

webstorm常用快捷键_ Windows篇

在文件夹下所有文件中查找字符串(linux/windows)

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

记录C#常用的代码片段

请问在linux下或windows下分别实现在多文件中查找关键字

如何在不接触该目录中的文件的情况下查找文件夹更改(使用 Windows 和 C++)