C++使用通配符查找文件(FindFirstFile)

调用 FindFirstFile 和 FindNextFile 可搜索某个目录下的相应文件。

BOOL SearchFilesByWildcard(WCHAR *wildcardPath)
{
    HANDLE hFile = INVALID_HANDLE_VALUE;
    WIN32_FIND_DATA pNextInfo;  

    hFile = FindFirstFile(wildcardPath,&pNextInfo);
    if(INVALID_HANDLE_VALUE == hFile)
    {
        return FALSE;
    }  

    WCHAR infPath[MAX_PATH] = {0};
    if(pNextInfo.cFileName[0] != '.')
    {
        printf("Find result = %ws\r\n",pNextInfo.cFileName);
    }

    while(FindNextFile(hFile,&pNextInfo))
    {
        if(pNextInfo.cFileName[0] == '.')
        {
            continue;
        }

        printf("Find result = %ws\r\n",pNextInfo.cFileName);
    }

    return FALSE;
}
int main(int argc,char* argv[])
{
    setlocale(LC_ALL,"chs");

    //查找 abc开头的txt文件
    printf("Search 1:\r\n");
    SearchFilesByWildcard(L"E:\\Test\\abc*.txt");
    printf("\r\n");

    //查找 abc开头的文件
    printf("Search 2:\r\n");
    SearchFilesByWildcard(L"E:\\Test\\abc*");
    printf("\r\n");

    //查找jnt文件
    printf("Search 3:\r\n");
    SearchFilesByWildcard(L"E:\\Test\\*.jnt");
    printf("\r\n");

    //查找文件名为4个字符的txt文件
    printf("Search 4:\r\n");
    SearchFilesByWildcard(L"E:\\Test\\????.txt");
    printf("\r\n");

    //查找包含"档案"的文件
    printf("Search 5:\r\n");
    SearchFilesByWildcard(L"E:\\Test\\*档案*");
    printf("\r\n");

    getchar();
    return 0;
}

原文地址:https://www.cnblogs.com/chay/p/10888771.html

时间: 2024-10-10 00:57:15

C++使用通配符查找文件(FindFirstFile)的相关文章

15 查找文件

• locate –通过名字来查找文件• find –在目录层次结构中搜索文件我们也将看一个经常与文件搜索命令一起使用的命令,它用来处理搜索到的文件列表:• xargs –从标准输入生成和执行命令行另外,我们将介绍两个命令来协助我们探索:• touch –更改文件时间• stat –显示文件或文件系统状态 一.locate 只能根据文件名进行查找 二.find——可以基于各种各样的属性,比如应用选项,测试条件,操作 [email protected]:~$ find ~ |wc -l 找出活跃的

【Linux探索之旅】第二部分第九课:查找文件,无所遁形

内容简介 1.第二部分第九课:查找文件,无所遁形 2.第二部分测试题 查找文件,无所遁形 这一课不难,但挺重要的. 之前的课程我们见识过了Linux下文件的组织形式是很特别的,跟Windows不一样. 我们也用ls / 这个命令来列出根目录下的所有目录,有/bin,/etc,/var,/home,等等.而这些目录下又有子目录和文件,错综复杂. 这些目录中有一部分是历史遗留的,从Unix时代就有了.问题是:我们如何在这"茫茫文海"中查找我们需要的文件. "人潮人海中,有你有我.

在linux系统中,如何使用【find】命令精确查找文件?

[find]是文件查找工具,它会遍历指定目录下所有文件的,所以使用该命令,查找文件的速度比较慢.但是它能够文件类根据型.文件的各做为条查件,找显示符合条件的文件目录. 一.既然,[find]是根据文件的特点来查看文种属性件的.那么先了解,文件有啥特点. 1.文件特点有很多,它们是分类的.find 命令如何表示文件特点的类别的: [find]命令是如何标识文件特点的类别的:              文件名称                   -name              文件类型   

Linux中常用的查找文件的命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which       查看可执行文件的位置 whereis    查看文件的位置 locate       配合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex) 1.which 语法:  [r

Linux 查找文件

find 查找目录 -name "文件名"find / -name "php.ini" locate 文件名locate php.ini 一:locate命令 locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立.当我们建立好这个数据库后,就可以方便地来搜寻所需文件了. 即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在   /var/lib/slocat

linux查找文件总结

locate:非实时的查找,查找过程根据全系统文件数据库进行的,查找方式非精确. 默认系统定时写入数据库. 优点:查找速度快. 若无数据库,可以手动创建,updatedb,但是该命令处理时间会很长. find:实时的,精确的,遍历指定目录的所有文件完成查找,查找速度慢. 支持众多查找标准(支持正则表达式) find 查找路径   查找标准   查找到以后处理操作 默认当前路径默认当前路径下所有文件默认为显示区分大小写 匹配标准: -name 'fliename' 例子:find /tmp -na

Linux下查找文件:which、whereis、locate、find 命令的区别

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which       查看可执行文件的位置,通过环境变量查whereis    查看文件的位置,通过数据库查,每周更新locate       配合数据库查看文件位置,通过数据库查,每周更新find          实际搜寻硬盘查询文件名称,查硬盘 1.which 语法: [[email protected] ~]# which 可执行文件名称 例如: [[email protected] ~]# whic

WildCardQuery通配符查找

/* * 通配符的概念已经被使用很久了,从最早的DOS时代一直到今天. * 通常情况下,在通配符中使用"*"来表示0到多个字符, * 而使用"?"来表示一个单一的字符. * Lucene中提供了的通配符搜索工具WildcardQuery. * 具体的使用非常简单, * 就首先设定一个带通配符的字符串, * 再包装成Term对象,然后将其作为wildCardQuery的构造函数的参数传入其中. * */ package query; import java.io.IO

CentOS定位、查找文件的命令

定位.查找文件的命令 命令 功能 命令 功能 which 从path中找出文件的位置 find 找出所有符合要求的文件 whereis 找出特定程序的路径 locate 从索引中找出文件位置 9.1 which 语法 which command 说明 依序从path环境变量所列的目录中找出command的位置,并显示完整路径的名称.在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录. 范例,找出ls命令的程序文件的位置: which ls 系统输出: /usr/bin/ls 9