六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 38|回复: 0

VC中遍历文件夹

[复制链接]

升级  38.67%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
108
 楼主| 发表于 2013-2-4 19:52:04 | 显示全部楼层 |阅读模式
#include <windows.h>
#include <stdio.h>
#include <conio.h>

void SearchDir(char *path, FILE* fp)//注意:这个path必须以'\'结尾
{
HANDLE hFind;
WIN32_FIND_DATA wfData;
char FullPath[MAX_PATH];
char subdir[MAX_PATH];

fprintf(fp,"Directory of %s\n", path);

strcpy(FullPath,path);
strcat(FullPath,"*.*");

hFind = FindFirstFile(FullPath,&wfData);
if(hFind == INVALID_HANDLE_VALUE)
{
   fprintf(fp,"No file is found.\n");
   return;
}

do
{
   switch(wfData.dwFileAttributes)
   {
   case FILE_ATTRIBUTE_DIRECTORY://目录
    if(strcmp(wfData.cFileName,".") && strcmp(wfData.cFileName,".."))//排除当前目录和上级目录
    {
     fprintf(fp,"%s\t\t\t\t\tdirectory\n",wfData.cFileName);
     sprintf(subdir,"%s%s\\",path,wfData.cFileName);
     SearchDir(subdir,fp);//递归调用,这是遍历的基础
    }
    break;
   default:
    fprintf(fp,"\t%s\t\t\t\tfile\n",wfData.cFileName);
    break;
   }
}while(FindNextFile(hFind,&wfData));
}

void main()
{
FILE *fp;
fp = fopen("dir.txt","wt");
if(fp==NULL)
{
   printf("Unable to create output file!\npress any key to quit.\n");
   getch();
   return;
}

printf("Searching Volume C, please wait.");
SearchDir("G:\\",fp);
printf("...finished.\n");

fclose(fp);

printf("Comamnd finished successfully!\nPress any key to view output.\n");
getch();
WinExec("notepad dir.txt",SW_SHOW);
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表