• vc遍历目录


    #include "stdafx.h" 
    #include 
    <windows.h> 
    #define FILEILTER 
    "*.*"

    BOOL IsRoot(LPCTSTR lpszPath) 

        TCHAR szRoot[
    4]; 
        wsprintf(szRoot, 
    "%c:\\", lpszPath[0]); 
        
    return (lstrcmp(szRoot, lpszPath) == 0); 
    }
     

    void FindInAll(LPCTSTR lpszPath) 
    {
        TCHAR szFind[MAX_PATH]; 
        lstrcpy(szFind, lpszPath); 
        
    if (!IsRoot(szFind)) 
            lstrcat(szFind, 
    "\\"); 
        lstrcat(szFind, FILEILTER); 
    // 找所有文件 
        WIN32_FIND_DATA wfd; 
        HANDLE hFind 
    = FindFirstFile(szFind, &wfd); 
        
    if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败 
            return
        
        
    do 
        

            
    if (wfd.cFileName[0== '.'
                
    continue// 过滤这两个目录 
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
            

                TCHAR szFile[MAX_PATH]; 
                
    if (IsRoot(lpszPath)) 
                    wsprintf(szFile, 
    "%s%s", lpszPath, wfd.cFileName); 
                
    else 
                
    {
                    wsprintf(szFile, 
    "%s\\%s", lpszPath, wfd.cFileName); 
                    FindInAll(szFile); 
    // 如果找到的是目录,则进入此目录进行递归 
                }

            }
     
            
    else 
            

                TCHAR szFile[MAX_PATH]; 
                
    if (IsRoot(lpszPath)) 
                
    {
                    wsprintf(szFile, 
    "%s%s", lpszPath, wfd.cFileName); 
                }

                
    else 
                
    {
                    wsprintf(szFile, 
    "%s\\%s", lpszPath, wfd.cFileName); 
                    printf(
    "%s\n",szFile); 
                }

                
    // 对文件进行操作 
            }
     
        }
     while (FindNextFile(hFind, &wfd)); 
        FindClose(hFind); 
    // 关闭查找句柄 
        
    }
     
    int main(int argc, char* argv[]) 

        FindInAll(
    "C:\\TEST"); 
        
    return 0
    }
     
  • 相关阅读:
    F. 数学上来先打表
    LibreOJ β Round #2
    noip飞扬的小鸟
    jxoi2017
    分块算法
    Chino的数列
    cf 613E
    cf 126D
    cf 542E
    cf 512D
  • 原文地址:https://www.cnblogs.com/ahuo/p/1025197.html
Copyright © 2020-2023  润新知