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;

    }

    重剑无锋,大巧不工
  • 相关阅读:
    hdu 1260 Tickets
    hdu 4738 Caocao's Bridges(桥的最小权值+去重)
    找规律
    C语言快速排序
    数组的初始化方法
    C语言选择排序
    副本机制
    安装完Kali的后续操作
    Bool盲注
    Python中的列表
  • 原文地址:https://www.cnblogs.com/919czzl/p/4021983.html
Copyright © 2011-2022 走看看