zoukankan      html  css  js  c++  java
  • 一个遍历所有文件夹的例子

    只是给出那个最核心的函数,他只是对文件夹感兴趣。


    bool EnumDirectory(TCHAR *dirpath)

    {

     WIN32_FIND_DATA fd;

     TCHAR szTempFileFind[MAX_PATH] = { 0 };

     bool bIsFinish = false;

     ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));

     wsprintf(szTempFileFind, L"%s\\*.*", dirpath);

     HANDLE hFind = FindFirstFile(szTempFileFind, &fd);

     if (hFind == INVALID_HANDLE_VALUE)

     {

      return false;

     }

     while (!bIsFinish)

     {

      if ((StrCmp(fd.cFileName, L".") != 0) && (StrCmp(fd.cFileName, L"..") != 0))

      { //过滤掉代表本级和上级的文件夹

       TCHAR szFoundFileName[MAX_PATH] = { 0 };

       StrCpy(szFoundFileName, fd.cFileName);

       if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

       { //只对文件夹感兴趣

          // do what you want;

        EnumDirectory(szTempDir);//递归调用

       }

      }

      bIsFinish = (FindNextFile(hFind, &fd)) ? false : true;


     }

     FindClose(hFind);

     return 0;

    }

    一般的用法如下,

    for(i='A';i<='Z';i++)

     {

      WCHAR x[20]={i,':'};

      UINT Type=GetDriveType(x); //对磁盘分区进行逐个类型匹配

      if(Type == DRIVE_NO_ROOT_DIR)
       MessageBox(NULL,TEXT("DRIVE_NO_ROOT_DIR"),TEXT(""),MB_OK);

      if(Type==DRIVE_FIXED||Type==DRIVE_REMOVABLE)//取硬盘和移动磁盘

      {

       EnumDirectory(x);//进行感染 此函数下面介绍

      }

     }

  • 相关阅读:
    mybatis-spring 集成
    maven 插件深入了解
    maven 常用插件3
    maven 插件2
    <转载> maven 详解 http://www.cnblogs.com/binyue/p/4729134.html
    linux base shell 基础语法
    浏览器运行原理
    <转载> js 闭包
    dubbo 学习资料
    HTTP
  • 原文地址:https://www.cnblogs.com/aicro/p/1643670.html
Copyright © 2011-2022 走看看