zoukankan      html  css  js  c++  java
  • 函数FindFirstFile

     文件查找

    Struct Lnode{

    Char table[256];         //保存文件夹名

    Struct Lnode*next;

    }

    加文件夹入链表

    Lnode *newList;

    Void AddList(char *list)          //list为文件夹名

    {

         NewList=new Lnode;

         Strcpy(NewList->table,list);

         newList->next=NULL;

         if(h->next==NULL)

            h->next=newList;       //h为头结点

         else

         {

           r->next=newList;        //r始终指向尾节点

           r=newList;

         }

    }

    FindFirstFile和FindNextFile

    HANDLE   FindFirstFile{

       LPCTSTR  IpFileName; //指向要查找的文件名(包含路径)

       LPWIN32_FIND_DATA IpFindFileData;   //输出参数,指向一个结构。此结构可以描述找到的文件或文件夹的属性。

    }

    函数调用成功则返回可供函数FindNextFile和函数FindClose使用的查找句柄,否则返回INVALID_HANDLE_VALUE;

    Typedef struct _WIN32_FIND_DATA{

    DWORD dwFileAttributes;     //文件属性

    FILETIME ftCreationTime;     //创建文件的时间

    FILETIME ftLastAccessTime;    //最近一次访问文件的时间

    FILETIME ftLastWriteTime;    //最近一次修改文件的时间

    DWORD nFileSizeHigh        //文件大小的高位字

    DWORD nFileSizeLow;        //文件大小的地位字

    DWORD dwReserved0;       //保留,未使用

    DWORD dwReserved1;       //保留,未使用

    TCHAR cFileName[MAX_PATH];    //文件的名称

    TCHAR cAlternateFileName[14];    //文件的替换名称,用文件名.后缀名表示

    } WIN32_FIND_DATA,*p WIN32_FIND_DATA;

    BOOL  FindNextFile   {

       HANDLE  hFindFile;      //此参数指向了函数FindFirstFile返回的查找句柄

    LPWIN32_FIND_DATA IpFindFileData;

    }

    函数调用成功则返回可供函数FindNextFile和函数FindClose使用的查找句柄,否则返回INVALID_HANDLE_VALUE;

    查找文件一般使用的结构

    hFindFile=FindFirstFile(IpFileName,&IpFindData);

    if(hFindFile!=INVALID_HANDLE_VALUE)

    {

          Do

    {

    }while(FindNextFile(hFindFile,&findData))

    }

    遍历目录

    Void FindFile(char *pRoad,char *pFile)

    //pRoad为要查找的路径,pFile为要查找的文件

    {

               Char FileRoad[256]={0};//要查找文件的路径

               Char DirRoad[256]={0};//存放要查找的路径

               Char FindedFile[256]={0};

               Char FindedDir[256]={0};//存放找到的是文件夹的路径

               Strcpy(FileRoad,pRoad);

               Strcpy(DirRoad,pRoad);

               Strcat(DirRoad,”\*.*”);

             

             //查找文件,把找到的放入文件夹链表

              WIN32_FIND_DATA findData;

              HANDLE hFindFile;

              hFindFile=FindFirstFile(DirRoad,&findData);

              if(hFindFile!=INVALID_HANDLE_VALUE)

              {

                      Do

    {

     If(findData.cFileName[0]==’.’)

          Continue;

    If(findData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)

    {

        Strcpy(FindedDir,pRoad);

        Strcat(FindedDir,”\”);

        Strcat(FindDir,findData.cFileName);

    AddList(FindDir);

    Memset(FindDir,0x00,256);

    }

    }while(FindNextFile(hFindFile,&findData));

    }

    Strcat(FileRoad,”\”);

    Strcat(FileRoad,pFile);

    //查找要查找的文件

    hFindFile=FindFirstFile(FileRoad,&findData);

    if(hFindFile!=INVALID_HANDLE_VALUE)

    {

        Do{

    Strcpy(FindedFile,pRoad);

    Strcat(FindedFile,”\”);

    Strcat(FindedFile,findData.cFileName);

    Printf(“%s ”,FindedFile);

    Memset(FindedFile,0x00,256);

    }while(FindNextFile(hFindFile,&findData));

    }

    }

    Int searchFile(char * Directory,char *SeachFile)

    {

         Lnode newList;

         Strcpy(newList->table,Directory);

         newList->next=NULL;

         while(true)

         {

              Lnode *Find;

              If(r->next!=NULL)

              {

                   Find=r->next;

                   r->next=r->next->next;

                   FindFile(Find->table,searchFile);

    Else

    {

            Printf(“文件搜索完毕 ”);

           Return 0;

    }

    }

    Return 0;

    }

    重剑无锋,大巧不工
  • 相关阅读:
    oracle安装界面中文乱码解决
    Vmware esxi开启snmp服务
    sybase ase 重启
    zabbix通过snmp监控vmware vpshere5.5
    Linux下安装Sybase ASE 16
    DATAGUARD在做SWITCHOVER切换时遇到问题总结
    UVA 1564
    Drupal 7 模块开发 建立模块帮助信息(hook_help)
    HTML5实现图片文件异步上传
    RGCDQ(线段树+数论)
  • 原文地址:https://www.cnblogs.com/919czzl/p/4021983.html
Copyright © 2011-2022 走看看