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 }

运行结果:

时间: 2024-12-19 13:48:27

windows下文件查找的相关文章

Windows下DLL查找顺序

Windows下DLL查找顺序 作者:Tocy    时间:2014-10-18 一.写作初衷 在Windows下单个DLL可能存在多个不同的版本,若不特别指定DLL的绝对路径或使用其他手段指定,在应用程序加载DLL时可能会查找到错误的版本,进而引出各种莫名其妙的问题.本文主要考虑以下两个方面: a. 参考MSDN,给出Windows下DLL查找顺序 b. 简单使用ProcessMonitor来验证DLL查找顺序 二.DLL查找顺序 (本部分多数内容是参考MSDN上的Dynamic-Link L

linux系统下文件查找

在我们实际应用中,经常需要查找某个特定的文件,或者根据文件的某个特定属性进行查找,今天小菜就给大家分享一下,linux系统下文件查找的两大利器: 1,locate:非实时查找(基于预先生成的数据库查找):模糊匹配:速度快 2,find:实时查找(遍历目录中的所有文件完成查找):精确匹配,支持众多查找标准:速度慢 一.locate 查询系统上预先生成的文件索引数据库:/var/lib/mlocate/mlocate.db 依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务) 管

windows 下文件上传到fastdfs

php.ini 配置 [fastdfs]; the base pathfastdfs_client.base_path = D:/tmp; connect timeout in seconds; default value is 30sfastdfs_client.connect_timeout = 2; network timeout in seconds; default value is 30sfastdfs_client.network_timeout = 60 ; standard l

Linux 系统的下文件查找

Linux 系统下文件查找 1.which (1)作用:用于查找并显示给定命令的绝对路径 (2)语法:which(选项)(参数) (3)案例: [[email protected] ~]# which cd       #查找cd命令的路径 /usr/bin/cd [[email protected] ~]# which cp       #查找cp命令的路径 alias cp='cp -i' /usr/bin/cp 2.whereis (1)作用:来定位指令的二进制程序.源代码文件和man手册

使用cwRsync实现windows下文件定时同步【转】

1.参考文献: 使用cwRsync实现windows下文件定时同步(备份) 文件同步工具CwRsync的使用方法及常用命令详解 2.背景: 当前的SCADA架构中,有1台Server,5台FE,还有1台Client.其架构如下图所示: 虽然叫法不同,但是他们的安装文件和配置文件是完全一样的.并且大多数情况下,也建议这些服务器上面的配置文件保持一致,这样只需要维护一个版本的config即可,不需要个性化定义每台服务器上面的config文件.由此也带来了一个新的问题,每当我在一台机器上面修改了配置文

使用cwRsync实现windows下文件定时同步

1.参考文献: 使用cwRsync实现windows下文件定时同步(备份) 文件同步工具CwRsync的使用方法及常用命令详解 2.背景: 当前的SCADA架构中,有1台Server,5台FE,还有1台Client.其架构如下图所示: 虽然叫法不同,但是他们的安装文件和配置文件是完全一样的.并且大多数情况下,也建议这些服务器上面的配置文件保持一致,这样只需要维护一个版本的config即可,不需要个性化定义每台服务器上面的config文件.由此也带来了一个新的问题,每当我在一台机器上面修改了配置文

Linux下文件查找与定位

Linux下一切皆文件,但是文件由于文件的属性的不同,在查找上可以针对不同的文件做相应的查找以便加快查询速度和减少资源的消耗. 1 .   which 命令[可执行文件的查找,系统文件中检索]:此命令是查找显示可执行命令的路径和别名,通过查找可以确定在/sbin . /usr/sbin. /usr/bin .哪个目录下, 是在系统和用户环境变量中存在的目录文件中查找的. 参数 解释 --all,  -a Print all matching executables in  PATH, not j

windows下文件编码和读写注意

最近写了一个小工具,主要实现自动搜索指定路径下所有文本文件内容,并替换指定字符串,记录下几个容易犯错误的地方. 1,fread读出来的buffer存放到string里,如果要搜索指定的字符串,比如"中华人民共和国",首先要确定文件的编码格式是什么?根据文件的编码格式,对目标串进行编码转换后,才能用string.find去进行查找. 而如何判断文件的编码格式呢,windows下文本文件一般有两种字符集,unicode和gbk,根据文件的前三个字节来决定该文件的编码格式,这三个字节是 &q

Linux下文件查找

linux文件查找 find 文件查找 locate 文件查找:在文件系统上查找符合条件的文件 locate 依赖于事先构建好的索引库     查询系统上预建的文件索引数据库     /var/lib/mlocate/mlocate.db 系统自动实现,周期性任务. 手动创建跟新数据库(updatedb,非常消耗系统资源) 慎用! 工作特性:     查找速度快     模糊查找     非实时查找,可能文件已经有变动或不存在     locate [option]...PATTERN...